Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.015 c
15-1255496803
И. Павел
2009-10-14 09:06
2009.12.13
Компоненты для смены скинов.


15-1255394936
brother
2009-10-13 04:48
2009.12.13
Посоветуйте программу для поиска в файлах по заголовкам


15-1255284553
Denis123
2009-10-11 22:09
2009.12.13
Проверка сложности пaроля


2-1256531968
Danuve
2009-10-26 07:39
2009.12.13
Создание калькулятора


15-1255158192
vrem
2009-10-10 11:03
2009.12.13
Поздравляю с днём психического здоровья..