Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.16;
Скачать: CL | DM;

Вниз

Как hicon переделать в hbitmap и при этом увеличить или уменьшить   Найти похожие ветки 

 
Nikfel ©   (2007-06-11 16:01) [0]

Пожалуйста помогите переделать алгоритм:
procedure TForm1.Button1Click(Sender: TObject);
var
       TheBitmap : TBitmap;
begin
       TheBitmap := TBitmap.Create;
       TheBitmap.Width := Application.Icon.Width;
       TheBitmap.Height := Application.Icon.Height;
       TheBitmap.Canvas.Draw(0, 0, Application.Icon);
       Form1.Canvas.StretchDraw(Rect(0,0,TheBitmap.Width * 3,TheBitmap.Height * 3),
                  TheBitmap);
       TheBitmap.Free;
end;


 
Thaddy   (2007-06-11 17:17) [1]

Something like this, UNTESTED:

Procedure TForm1.ButtonClick(Sender: PObj);
var
      TheBitmap: PBitmap;
      R:TRect;
begin
      TheBitmap: = NewBitMap(Applet.Icon.width,Applet.Icon.Height);
      R := MakeRect(0,0,TheBitmap.Width * 3.TheBitmap.Height * 3));
     TheBitmap.StretchDraw(Form1.Canvas.Handle,R);
     TheBitmap.Free;
end;


 
Nikfel ©   (2007-06-13 16:06) [2]

Спасибо за помощь. Вот правильный код:
procedure TForm1.Button1Click(Sender: PObj);
var
     TheIcon: Picon;
     R:TRect;
begin
TheIcon:= kol.NewIcon;
TheIcon.Handle:=applet.Icon;
R:= MakeRect(0,0,64,64);
TheIcon.StretchDraw(form.Canvas.Handle,R);
TheIcon.Free;
end;
Жаль только изображение немного искажается, как исправить.


 
SergeR ©   (2007-06-13 16:21) [3]

Использовать масштабирование из сторонних библиотек.
Я, например, Strecth(var Src,Dst: PBitmap; Filter: TFilterProc; FWidth: single) из
KOLjanFXcut использую.


 
Vladimir Kladov   (2007-06-13 20:48) [4]

Для масштабирования в меньшую сторону всегда полезно вызывать SetStretchBltMode( dc, halftone ) перед StretchBlt (или тем, что его вызовет). В большую - разницы не замечал, при кратном увеличении. Но если не кратное, то может, и поможет. Да, работает вроде как только в NT, в 9х не дает особого эффекта.



Страницы: 1 вся ветка

Текущий архив: 2007.12.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
6-1175800832
malyar
2007-04-05 23:20
2007.12.16
склейка пакетов в сокете


2-1195863024
СЕРВИС
2007-11-24 03:10
2007.12.16
Связь между сервисом и его программой оболочкой


2-1195297585
Kolan
2007-11-17 14:06
2007.12.16
Как разобраться как работает механизм ShortCut у TAction?


2-1195595872
azl
2007-11-21 00:57
2007.12.16
Table1.Filter


1-1190905720
Lamer666
2007-09-27 19:08
2007.12.16
TreeView.OnEdited