Форум: "KOL";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
ВнизКак 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 вся ветка
Форум: "KOL";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c