
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.16] |
![]() |
|
Страницы: (3) 1 [2] 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Цитата Timon K @ И второй - как тогда сделать иконку по старым "понятиям"? Конвертировать рисунок из bmp? Но в нём нет прозрачности... Повторюсь - ищи редактор с возможностью нормальных вариантов сохранения. И второй момент, протестируй мои варики: Прикреплённый файл ![]() Прикреплённый файл ![]() |
Сообщ.
#17
,
|
|
|
Majestio, завтра попробую, спасибо.
|
Сообщ.
#18
,
|
|
|
Цитата Timon K @ Majestio, завтра попробую, спасибо. Гуд, если все прокатит - а оно прокатит, то тебе понадобится норм редактор ICO. И он у меня есть. Но тут присоединить не могу - инсталляха в архиве весит 5 метров. А форум такое не позволяет аттачить. Поэтому шли мне в приват свое мыло - туда вышлю. |
Сообщ.
#19
,
|
|
|
Цитата Timon K @ о опять же вопрос - а почему ровно эти же иконки корректно отображаются вне тулбара? И второй - как тогда сделать иконку по старым "понятиям"? Конвертировать рисунок из bmp? Так это обновление работы с контейнером ICO. Просто старые библиотеки в Windows 7 и, по моему, даже в 8 не умеют с такими работать. Изначально все иконки содержали только пиксели или индексы с палитрой (т.е. обычный формат BMP). Только недавно туда стали пихать PNG, SVG и даже JPEG или GIF (без анимации). А иконки и не поддерживают прозрачность. Для прозрачности там используется цвет пикселя [0, 0] как transparent color. И вот только иконки с PNG начали работать с прозрачностью. |
Сообщ.
#20
,
|
|
|
Цитата macomics @ А иконки и не поддерживают прозрачность. Ошибочное заявление, низя так! ![]() Прежде, чем писать такие свои заявления - желательно прокачивать свои "убеждения", протестить. Уточнение. Но только на счет 16-битного цвета ICO. Остальное ищите сами: Цитата В 16-битном цвете формат ICO использует 5 бит на красный, 6 бит на зеленый и 5 бит на синий (RGB565). Прозрачность в этом формате реализуется с помощью альфа-канала, который позволяет задавать уровень прозрачности для каждого пикселя. Однако стоит отметить, что в 16-битных значках поддержка альфа-канала может быть ограниченной, и часто используется 1-битная маска для указания прозрачных областей. Это означает, что пиксели могут быть либо полностью прозрачными, либо полностью непрозрачными, без промежуточных значений прозрачности. Диавол кроется в мелочах! ![]() |
Сообщ.
#21
,
|
|
|
Цитата Majestio @ Уточнение. Но только на счет 16-битного цвета ICO. Остальное ищите сами: Это и называется transporent color. Я все верно сказал. Посчитаем: 5+6+5=16 - где еще 1 бит на альфу? А его нету. Просто один из 65536 цветов является полностью прозрачным. Это не прозрачность как таковая, а просто маска, где нет отрисовки пикселя. |
Сообщ.
#22
,
|
|
|
Цитата macomics @ Это и называется transporent color. Я все верно сказал. Увы - нет. В "нормальных" форматах прозрачность - это "отдельный канал" (альфа канал). Тут, в плане ICO-формата, это явный костыль, и такого нет. Хотя есть исключение - и я могу привести пример!!! Гляди: Прикреплённая картинка
Цитата macomics @ Это не прозрачность как таковая, а просто маска, где нет отрисовки пикселя. Вот тут ты прав. И об этом я писал в цитате выше. |
Сообщ.
#23
,
|
|
|
Цитата Majestio @ Цитата macomics @ Это и называется transporent color. Я все верно сказал. Увы - нет. В "нормальных" форматах прозрачность - это "отдельный канал" (альфа канал). Тут, в плане ICO-формата, это явный костыль, и такого нет. Хотя есть исключение - и я могу привести пример!!! Гляди: Прикреплённая картинка
Цитата macomics @ Это не прозрачность как таковая, а просто маска, где нет отрисовки пикселя. Вот тут ты прав. И об этом я писал в цитате выше. И что вы там показали. 16 цветов это не 16-бит. 16 цветов это 4 бита (16 значений), а 16-бит это 65536 значений. Для 16 цветов тоже может быть сохранена битовая маска, но все эти форматы (до 256 цветов) это форматы с палитрами т.е. таблицами преобразования индексов в цвет формата 24-бита. Иными словами у вас в файле будет записан массив из (для вашего случая) 16 цветов по 24 бита на каждый и сама матрица изображения будет состоять из 16*16 = 256 пикселей по 4 бит т.е. по 8 байт на строку и 128 байт всего. Итого все это будет занимать (16*24 + 16*16*4) / 8 = 176 байт. При этом даже в таком виде в матрицу изображения допустимо сохранить второе изображение битового трафарета (transparent color image). Т.е. выбрать один из 16 цветов, который не использован в изображении и считать его полностью прозрачным. Добавлено Если сам ICO файл не используется как контейнер, а хранит данные в декларированных форматом правилах, тогда это просто BMP со слегка измененными BITMAPCOREHEADER и BITMAPCOREINFO. И вот в этих форматах используются только RGBTRIPPLE структуры для описания цвета (т.е. 24-бита без альфа канала, что и означает, что он не поддерживается). Но т.к. прозрачность у иконок была востребована еще во времена первых графических систем, то и её надо было как-то реализовывать. Есть вариант иконок со второй матрицей трафаретом в монохромном формате для прозрачности. Но чаще (во времена 95 виндовс) стали использовать наложенную матрицу трафарета. Т.е. иконку с 1 полностью прозрачным цветом. А вот современные иконки все чаще используют другую возможность ICO формата. Используются как контейнеры и сохраняют внутри как BMP 4 и 5 версии с поддержкой 32-битных цветов (с альфа каналом) или GIF/JPEG форматы для сжатия больших матриц или даже SVG (векторный формат) для трафаретов, а при использовании PNG так и вовсе появляется возможность сохранения изображений со сжатием и в форматах пикселей до 48-бит на пиксел (а может и больше - надо посмотреть что там у PNG, но это самое большое, что я использовал). |
Сообщ.
#24
,
|
|
|
Цитата macomics @ И что вы там показали. 16 цветов это не 16-бит. 16 цветов это 4 бита (16 значений), а 16-бит это 65536 значений. ![]() Ну это же прописные истины. А по всему остальному ответу могу сказать одно - ICO это контейнер, т.к. хранит множество изображений. Другой вопрос - как хранит. В предыдущем своем ответе я написал первое попавшееся по поиску описание хранение изображений. Но, конечно, это неправильный подход! Правильно - это найти спецификации формата ICO, вплоть до последней действующей версии. Но есть и второй вопрос - а все ли версии формата ICO поддерживает этот комконтрол-либа из венды? Тут тоже нужно заняться поиском уже спецификации по комконтролам, и что они там поддерживают. |
Сообщ.
#25
,
|
|
|
Цитата Timon K @ как тогда сделать иконку по старым "понятиям"? Конвертировать рисунок из bmp? Но в нём нет прозрачности... Можно вообще делать иконки программно в памяти - внутри твоего приложения. (Это точно, я такое сам делал) Понятно, что изображение должно быть достаточно простым. Иначе процесс рисования будет сложным. Ключевая WINAPI функция - "CreateIconIndirect" При создании иконки используется основное изображение иконки и формируется битмэп - "маска". Которая укажет, где будет "прозрачность". Эти битмэпы передаются CreateIconIndirect - у. Как-то так. |
Сообщ.
#26
,
|
|
|
Цитата Majestio @ А по всему остальному ответу могу сказать одно - ICO это контейнер, т.к. хранит множество изображений. И вот теперь посмотрите на содержимое Save.ico, где в этом самом контейнере лежат данные BMP, но без заголовка этого самого BMP (нет сигнатуры BM), как в случае с размещением BMPv4 или BMPv5. Тогда они туда будут помещаться с заголовками и работать как контейнер с альфа каналом и в 32bpp. А в Save.ico как раз лежат данные в исходном варианте как в спецификации ICO. Такой загружается напрямую без COM - поэтому и работает. |
Сообщ.
#27
,
|
|
|
Цитата Majestio @ Гуд, если все прокатит - а оно прокатит, то тебе понадобится норм редактор ICO. И он у меня есть. Но тут присоединить не могу - инсталляха в архиве весит 5 метров. А форум такое не позволяет аттачить. Поэтому шли мне в приват свое мыло - туда вышлю. Да, ваши иконки отображаются как надо. Запрошу у вас редактор. Добавлено Majestio, не могу зайти в ваш профиль, что бы дать свой адрес. Добавлено Флуд-контроль, однако. Отправил своё мыло. |
Сообщ.
#28
,
|
|
|
Majestio, получил, спасибо, завтра буду пробовать.
|
Сообщ.
#29
,
|
|
|
Цитата Timon K @ Majestio, получил, спасибо, завтра буду пробовать. В скором времени Валера (Vot) наладит способы заливок более объемных архивов. Я тебе тогда залью еще один редактор. Он менее удобный по интерфейсу, но более функциональный по современным требованиям. В частности, там можно будет формировать "полный" набор размеров, вплоть до "Big Size" последних уиндофс. Ждём Валеру. ЗЫ: Тот редактор, что я тебе отправил ... считай, по совместимости Windows 7 и менее, если можно так сказать. |
Сообщ.
#30
,
|
|
|
Majestio, что ж, да, ждём Валеру
![]() Добавлено Кстати, а кто-нибудь знает, куда делось моё предыдущее сообщение со словами благодарности участникам данной темы? |