Resize(Strech) на Bitmap

1 отговора 55 прегледа
#1

Resize(Strech) на Bitmap

Искам да си увелича някаква картинка примерно Bitmap (bmp) от 800*600 да стане на 1024*768, след което да я запазя с увеличения и размер. Искам да изясне че идеята е да се уголеми самото изображение, а не да се добяви празни бели полета след него.
Ако ниакой се сети може да ми пите на e-mail [email protected]

Отговор
в отговор на Arty #2

Re: Resize(Strech) на Bitmap


procedure TForm1.Button1Click(Sender: TObject);
var
srcImage : TBitmap;
destImage : TBitmap;
destRect : TRect;
pt : TPoint;
begin
destRect.Top :=0;
destRect.Left := 0;
destRect.Right := 1023;
destRect.Bottom := 767;
srcImage := TBitmap.Create;
srcImage.LoadFromFile('c:\lanmannt.bmp');
destImage := TBitmap.Create;
destImage.Width := 1024;
destImage.Height := 768;

//ГРУБО
destImage.Canvas.StretchDraw(destRect,srcImage);
destImage.SaveToFile('c:\test1_1024.bmp');

//ПО-ПРИЛИЧНО
GetBrushOrgEx(destImage.Canvas.Handle, pt);
SetStretchBltMode(destImage.Canvas.Handle, HALFTONE);
SetBrushOrgEx(destImage.Canvas.Handle, pt.x, pt.y, @pt);
StretchBlt(destImage.Canvas.Handle,0,0,1023, 767,srcImage.Canvas.Handle,0,0,srcImage.Width, srcImage.Height,SRCCOPY);
destImage.SaveToFile('c:\test1_1024_ss.bmp');
srcImage.Free;
end;


въпреки че имам твоето разрешение, няма да ти пиша на мейла

Am I evil?
Yes I am.
Отговор