Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Проблема с сохранением в bitmap


Автор: Olegan 15.5.2007, 13:51
Доброе время суток! smile 

Загвоздка вот в чем:

Как обычно сохраняю изображение из Image1 в bmp с помощью SavePictureDialog1, ico тоже сохраняются корректно, а вот иконки из exe и dll файлов через ExtractIcon, тем же методом сохраняются не понятно во что. smile 
  
На выходе получается файл 766 кб и не открывается не одной программой.

Как правильно сохранить такие иконки в bmp? smile 

Автор: Snowy 15.5.2007, 14:04
Чтобы сохранить иконку в BMP, нужно создать TBitmap и нарисовать на нём иконку.
Вот после этого уже можно сохранять битмап.

Автор: Olegan 15.5.2007, 14:09
Понял!  smile 
Только в delphi я новичек smile , хотелось бы увидеть код.  smile 

Автор: Snowy 15.5.2007, 14:18
Код
const IcoSz = 32; // размер иконок
var
  h: hIcon;
  bmp: TBitMap;
begin
  h := ExtractIcon(hInstance, 'C:\Windows\System32\shell32.dll', 0);
  if h <> 0 then begin
    bmp := TBitMap.Create; // создаем битмап и задаем ему размер под иконку
    try
      bmp.Width := IcoSz;
      bmp.Height := IcoSz;
      //bmp.Canvas.Brush.Color := $FFFFFF; // цвет фона
      DrawIconEx(bmp.Canvas.Handle, 0, 0, h, IcoSz, IcoSz, 0,
                 bmp.Canvas.Brush.Handle, DI_NORMAL); // рисуем на него икону
      bmp.SaveToFile('ico.bmp');
    finally
      bmp.Free;
    end;
  end;
end;

Автор: Olegan 15.5.2007, 14:24
ДА, РАБОТАЕТ!!!  smile 
СПАСИБО!!! smile   smile   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)