Прозрачность иконок XP и как ее использовать на практике

enum 07.04.2004 - 08:08 | На днях по выковыривал картинок bmp и иконок из shell32.dll Windows XP но использование их для своей проги оказалось делом проблематичным потому что в них фоновый цвет прозрачный то есть bmp 32-битные с альфа-каналом, а делфи не понимает что это такое. Приходится IconWorkshop-ом преобразовывать этот "прозрачный цвет" в цвет под кодовым названием clBtnFace и уже в таком виде их впихивать в ImageList. В итоге преобразование получается опять таки не 100% точным и тулбар выглядит не совсем так как тулбар Internet Explorer например. я не говорю про кнопки. Как спрашивается с этим бороться. Как можно добится 100% точности преобразования или заставить делфи воспринимать прозрачность в изображениях ???
? 1 - 07.04.2004 - 08:30 | попробуй в ImageList подгружать иконки автоматически, читая их с диска с помощью LoadIcon (LoadIcon понимает альфа канал, правда только в XP и выше)
LF 2 - 07.04.2004 - 08:31 | указывай ПРАВИЛЬНЫЕ маски для ImageList и для ToolBAR все прекрасно работает со всеми иконками и ничего преобразовывать не надо
? 3 - 07.04.2004 - 08:45 | вместо автоматически имелось ввиду динамически ;)
enum 4 - 07.04.2004 - 09:51 | LF - поясните поподробнее что значит правильные?
enum 5 - 07.04.2004 - 10:29 | ? - дело в том что это не иконка (извиняюсь за неточность) , а bmp в котором несколько маленьких изображений для кнопок - как это делает MFC AppWizard для своих панелей инструментов. Попробовал динамически это дело загрузить не работает как в 2к так и в хр. есть идеи?
enum 6 - 07.04.2004 - 10:35 | LF - Я не говорю что изображения не загружаются, я имею ввиду, что они загружаются, но после загрузки их фоновый цвет отображается черным цветом, а если сделать черный цвет прозрачным в ImageList-е то картинки становятся обрезанными с неровными краями (отображаются некачаственно) -- такое ощущение , что ImageList не может работать с изображениями содержащими больше 256 цветов.
? 7 - 07.04.2004 - 21:29 | 2enum BMP альфа канал не поддерживает, да и не может поддерживать исходя из самой структуры BMP файла, а то что фон чёрный просто задай маску, если я не ошибаюсь то по умолчанию цвет для маски берётся по самому вехнему-левому пикселю.
LF 8 - 07.04.2004 - 21:34 | В Imagelist поддерживает True цвет и в нем и в Toolbar задается маска того цвета которая должна быть прозрачна У меня все прекрасно работает с 16млн цветов тулбаром и прозрачность есть
enum 9 - 08.04.2004 - 06:38 | LF - Скажите как называется свойство Toolbar которым задается маска прозрачного цвета?
enum 10 - 08.04.2004 - 06:46 | 7 ? - отлично, но почему тогда те изображения которые я повыковыривал из shell32 при открытии их в IconWorkshop имея формат бмп тем не менее показывают наличие прозрачности? и даже при открытии их текстовым редактором видно что пиксели там 4-байтовые - т.е в них есть альфа канал
LF 11 - 08.04.2004 - 09:08 | В ImageList маска ILC_MASK и тот цвет какой должен быть прозрачным А в ToolBar... э в нем ничего, то я напутал. ему до лампочки. Главное оказывается ImageList
? 12 - 08.04.2004 - 10:22 | to10 а как это открыв текстовым редактором можно увидеть что пиксели 4-х байтовые?? может ты имел ввиду HexViewer? смотри в BMP-шке (не сжатой!) просто загнаны для каждого пикселя 3 байта Red Green Blue, но ни как не 4, а 4-я байтами пиксель представлен в памяти, при этом старший байт зарезервирован (имеется ввиду именно поверхность созданную на основе BMP). ты говоришь что вытянул BMP с alpha наналом, это не альфа канал, а просто рисунок изображён как бы с альфа каналом, например если ты нарисуешь тень на этой же BMP, это же не значит что рисуя другую линию от неё должна падать тень...и ты же не будешь утверждать что данная BMP поддерживает теневые свойства, тоже самое и здесь. реальный альфа канал поддерживает tiff что ли, и ico тоже, но ico только в XP и выше.
? 13 - 08.04.2004 - 10:24 | кстате, и открывал наверное в IconWorkshop именно ICO. даже сюдя по названию...
Deflorator 14 - 08.04.2004 - 21:48 | у меня все в имэджлисте и все нормально. скриншот показывать? попробуйте взять другие рисунки оттуда же (из длл). там их по нескольку с разным какчеством, иногда до 4-рех. драл Ресторатором. Окромя этого посоветую скачать готовые глифы фор фри... Кстати, весьма и весьма симпотишные...

>>