Главная страница
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.016 c
15-1194983910
Kostafey
2007-11-13 22:58
2007.12.16
Обновление ряда таблиц БД из другой БД СУБД SQL Server 2005


2-1195547052
Layner
2007-11-20 11:24
2007.12.16
Не-уничтожение объектов, чем грозит


2-1195315615
X-Man
2007-11-17 19:06
2007.12.16
Клиент-Сервер тестирующая программа


3-1186531907
NovaC
2007-08-08 04:11
2007.12.16
драйвер ORACLE для ADO


2-1195648487
kudatsky
2007-11-21 15:34
2007.12.16
Ограничение на количество открытых DBF-файлов