На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
> Иконки в тулбаре на Вин 7 и 8 не прорисоваваются , На Вин-10 норамльно
    Цитата Timon K @
    И второй - как тогда сделать иконку по старым "понятиям"? Конвертировать рисунок из bmp? Но в нём нет прозрачности...

    Повторюсь - ищи редактор с возможностью нормальных вариантов сохранения. И второй момент, протестируй мои варики:
    Прикреплённый файлПрикреплённый файлeraseA_new.ico (318 байт, скачиваний: 43)
    Прикреплённый файлПрикреплённый файлopenB_1_new.ico (318 байт, скачиваний: 41)
      Majestio, завтра попробую, спасибо.
        Цитата Timon K @
        Majestio, завтра попробую, спасибо.

        Гуд, если все прокатит - а оно прокатит, то тебе понадобится норм редактор ICO. И он у меня есть.
        Но тут присоединить не могу - инсталляха в архиве весит 5 метров. А форум такое не позволяет аттачить.
        Поэтому шли мне в приват свое мыло - туда вышлю.
          Цитата Timon K @
          о опять же вопрос - а почему ровно эти же иконки корректно отображаются вне тулбара? И второй - как тогда сделать иконку по старым "понятиям"? Конвертировать рисунок из bmp?

          Так это обновление работы с контейнером ICO. Просто старые библиотеки в Windows 7 и, по моему, даже в 8 не умеют с такими работать. Изначально все иконки содержали только пиксели или индексы с палитрой (т.е. обычный формат BMP). Только недавно туда стали пихать PNG, SVG и даже JPEG или GIF (без анимации).
          А иконки и не поддерживают прозрачность. Для прозрачности там используется цвет пикселя [0, 0] как transparent color. И вот только иконки с PNG начали работать с прозрачностью.
          Сообщение отредактировано: macomics -
            Цитата macomics @
            А иконки и не поддерживают прозрачность.

            Ошибочное заявление, низя так! :'(
            Прежде, чем писать такие свои заявления - желательно прокачивать свои "убеждения", протестить.

            Уточнение. Но только на счет 16-битного цвета ICO. Остальное ищите сами:
            Цитата
            В 16-битном цвете формат ICO использует 5 бит на красный, 6 бит на зеленый и 5 бит на синий (RGB565). Прозрачность в этом формате реализуется с помощью альфа-канала, который позволяет задавать уровень прозрачности для каждого пикселя. Однако стоит отметить, что в 16-битных значках поддержка альфа-канала может быть ограниченной, и часто используется 1-битная маска для указания прозрачных областей. Это означает, что пиксели могут быть либо полностью прозрачными, либо полностью непрозрачными, без промежуточных значений прозрачности.

            Диавол кроется в мелочах! >:(
              Цитата Majestio @
              Уточнение. Но только на счет 16-битного цвета ICO. Остальное ищите сами:

              Это и называется transporent color. Я все верно сказал. Посчитаем: 5+6+5=16 - где еще 1 бит на альфу? А его нету. Просто один из 65536 цветов является полностью прозрачным.

              Это не прозрачность как таковая, а просто маска, где нет отрисовки пикселя.
              Сообщение отредактировано: macomics -
                Цитата macomics @
                Это и называется transporent color. Я все верно сказал.

                Увы - нет. В "нормальных" форматах прозрачность - это "отдельный канал" (альфа канал). Тут, в плане ICO-формата, это явный костыль, и такого нет. Хотя есть исключение - и я могу привести пример!!! Гляди:

                Прикреплённая картинка
                Прикреплённая картинка


                Цитата macomics @
                Это не прозрачность как таковая, а просто маска, где нет отрисовки пикселя.

                Вот тут ты прав. И об этом я писал в цитате выше.
                  Цитата 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, но это самое большое, что я использовал).
                  Сообщение отредактировано: macomics -
                    Цитата macomics @
                    И что вы там показали. 16 цветов это не 16-бит. 16 цветов это 4 бита (16 значений), а 16-бит это 65536 значений.

                    :lol:
                    Ну это же прописные истины. А по всему остальному ответу могу сказать одно - ICO это контейнер, т.к. хранит множество изображений. Другой вопрос - как хранит. В предыдущем своем ответе я написал первое попавшееся по поиску описание хранение изображений. Но, конечно, это неправильный подход! Правильно - это найти спецификации формата ICO, вплоть до последней действующей версии. Но есть и второй вопрос - а все ли версии формата ICO поддерживает этот комконтрол-либа из венды? Тут тоже нужно заняться поиском уже спецификации по комконтролам, и что они там поддерживают.
                      Цитата Timon K @
                      как тогда сделать иконку по старым "понятиям"? Конвертировать рисунок из bmp? Но в нём нет прозрачности...

                      Можно вообще делать иконки программно в памяти - внутри твоего приложения.
                      (Это точно, я такое сам делал)
                      Понятно, что изображение должно быть достаточно простым.
                      Иначе процесс рисования будет сложным.
                      Ключевая WINAPI функция - "CreateIconIndirect"
                      При создании иконки используется основное изображение иконки
                      и формируется битмэп - "маска". Которая укажет, где будет "прозрачность".
                      Эти битмэпы передаются CreateIconIndirect - у.
                      Как-то так.
                        Цитата Majestio @
                        А по всему остальному ответу могу сказать одно - ICO это контейнер, т.к. хранит множество изображений.

                        И вот теперь посмотрите на содержимое Save.ico, где в этом самом контейнере лежат данные BMP, но без заголовка этого самого BMP (нет сигнатуры BM), как в случае с размещением BMPv4 или BMPv5. Тогда они туда будут помещаться с заголовками и работать как контейнер с альфа каналом и в 32bpp. А в Save.ico как раз лежат данные в исходном варианте как в спецификации ICO. Такой загружается напрямую без COM - поэтому и работает.
                          Цитата Majestio @
                          Гуд, если все прокатит - а оно прокатит, то тебе понадобится норм редактор ICO. И он у меня есть.
                          Но тут присоединить не могу - инсталляха в архиве весит 5 метров. А форум такое не позволяет аттачить.
                          Поэтому шли мне в приват свое мыло - туда вышлю.

                          Да, ваши иконки отображаются как надо. Запрошу у вас редактор.

                          Добавлено
                          Majestio, не могу зайти в ваш профиль, что бы дать свой адрес.

                          Добавлено
                          Флуд-контроль, однако.
                          Отправил своё мыло.
                            Majestio, получил, спасибо, завтра буду пробовать.
                              Цитата Timon K @
                              Majestio, получил, спасибо, завтра буду пробовать.

                              В скором времени Валера (Vot) наладит способы заливок более объемных архивов. Я тебе тогда залью еще один редактор. Он менее удобный по интерфейсу, но более функциональный по современным требованиям. В частности, там можно будет формировать "полный" набор размеров, вплоть до "Big Size" последних уиндофс. Ждём Валеру.

                              ЗЫ: Тот редактор, что я тебе отправил ... считай, по совместимости Windows 7 и менее, если можно так сказать.
                                Majestio, что ж, да, ждём Валеру :D

                                Добавлено
                                Кстати, а кто-нибудь знает, куда делось моё предыдущее сообщение со словами благодарности участникам данной темы?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0438 ]   [ 19 queries used ]   [ Generated: 2.09.25, 23:23 GMT ]