Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ICO to Alpha Bitmap 
:(
    Опции темы
NOCaut
Дата 3.4.2012, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Делаю Контекстное меню с прозрачными иконками.
Подскажите готовый клас или модуль для конвертации ico to bmp з прозрачним фоном.
PM MAIL   Вверх
Ne1tr1n0
Дата 8.4.2012, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 1.3.2009

Репутация: нет
Всего: 8



Возможно что-то типа такого поможет:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap: TBitmap;
begin
Image1.Picture.Icon:=Application.Icon;
Bitmap:=TBitMap.Create;
with Bitmap do
begin
PixelFormat:=pf32bit;
Height:=Application.Icon.Height;
Width:=Application.Icon.Width;
Canvas.Draw(0, 0, Image1.Picture.Graphic);
end;
if SaveDialog1.Execute then
Bitmap.SavetoFile(SaveDialog1.FileName);
end;

Либо ещё вариант через ImageList, а лучше AlphaImageList из пакета AlphaSkins, он точно поддерживает 32-битные битмапы.
PM MAIL   Вверх
Alexeis
Дата 8.4.2012, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



 Насколько я помню, нормальное 32х битное рисование появилось только начиная с версии 2010, в более старых версиях будут проблемы.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Illusion Dolphin
Дата 9.4.2012, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



В XE2 работает, но надо быть уверенным что исходная HICON в 32 битном цвете.
Код

var
  piconinfo: TIconInfo;
begin
  GetIconInfo(Icon, piconinfo);
  try
    Bitmap.Handle := piconinfo.hbmColor;
    Bitmap.PixelFormat := pf32Bit;
  finally
    DeleteObject(piconinfo.hbmMask);
    DeleteObject(piconinfo.hbmColor);
  end;
end;

А вариант от Ne1tr1n0 у меня не работает, точнее теряет альфа канал. 


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0633 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.