Текущий архив: 2009.12.13;
Скачать: CL | DM;
ВнизКак масштабировать изображение по размерам окна? Найти похожие ветки
← →
ILPU © (2008-05-02 14:44) [0]Как масштабировать изображение по размерам окна?
Я использую из koljanfx Strecth.
procedure MyStrecth;
var
NewWidth,
NewHeight: Integer;
begin
if SrcBitmap.Empty then Exit;
if SrcBitmap.Width > SrcBitmap.Height then
begin
NewWidth := Panel1.Width;
NewHeight := Round(Panel1.Height * SrcBitmap.Height / SrcBitmap.Width);
end
else
begin
NewHeight := Panel1.Height;
NewWidth := Round(Panel1.Width * SrcBitmap.Width / SrcBitmap.Height);
end;
DesBitmap.Width:=NewWidth;
DesBitmap.Height:=NewHeight;
Strecth(SrcBitmap,DesBitmap,BellFilter,1.5);
end;
procedure TForm1.Panel1Paint(Sender: PControl; DC: HDC);
begin
DesBitmap.Draw(DC,0,0);
end;
procedure TForm1.KOLForm1Resize(Sender: PObj);
begin
Strecth;
end;
Возникает тормазнутось когда меняешь размеры окна
Проблема в KOLForm1Resize.
Как быть?
← →
Compiler © (2008-05-02 22:51) [1]> Проблема в KOLForm1Resize.
Никаких проблем
var
BMP:PBitmap;
procedure TForm1.KOLFormFormCreate(Sender: PObj);
begin
BMP:=NewBitmap(0,0);
BMP.LoadFromFile("Bunny.bmp");
PaintBox1.Transparent:=True;
...
procedure TForm1.PaintBox1Paint(Sender: PControl; DC: HDC);
begin
if (Assigned(bmp) and (not bmp.Empty)) then
BMP.StretchDraw(form1.form.canvas.Handle,MakeRect(0,0,Paintbox1.Width,Paintbox1. Height));
end;
← →
ILPU © (2008-05-03 05:51) [2]Когда большие фотки, качество страдает!
← →
ILPU © (2008-05-03 06:07) [3]Если так то качество нормальное, но опять тормазнутость:
procedure MyStrech(DC:HDC);
var B: PBitmap;
begin
B:=NewBitmap(Paintbox1.Width,Paintbox1.Height);
Strecth(SrcBitmap,B,ResampleFilters[5].Filter,ResampleFilters[5].Width);
DesBitmap.Assign(B);
B.Free;
DesBitmap.Draw(DC,0,0);
end;
procedure TForm1.PaintBox1Paint(Sender: PControl; DC: HDC);
begin
if (Assigned(DesBitmap) and (not DesBitmap.Empty)) then
MyStrech(DC);
end;
← →
ILPU © (2008-05-03 08:19) [4]В книге по KOL вычитал используем SetStretchBltMode(DC,halftone);
И все ОК.
А есть альтернатива?
И как реализовать Zoom?
← →
Vladimir Kladov (2008-05-03 08:26) [5]Есть ещё OpenGL.
Страницы: 1 вся ветка
Текущий архив: 2009.12.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c