怎样将一副大小为1024*768的JPG图片转换成800*600大小的图片 ( 积分: 30 )

  • 主题发起人 主题发起人 siaosa
  • 开始时间 开始时间
S

siaosa

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样将一副大小为1024*768的JPG图片转换成800*600大小的图片
 
怎样将一副大小为1024*768的JPG图片转换成800*600大小的图片
 
我是指用Delphi编程实现
var
JpegImg: TJpegImage;
begin
JpegImg.Assigned('1024*768图片')
????????????????? //怎么样用代码实现将JpegImg图片的值改为800*600
end;
 
用程序:

uses jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
jpg: TJPEGImage;
begin
jpg := TJPEGImage.Create;
try
jpg.LoadFromFile('d:/1.jpg');
jpg.Width := 800;
jpg.Height := 600;
jpg.SaveToFile('d:/1.jpg');
finally
jpg.Free;
end;
end;
 
设置.Width .Height只是将图片大小裁剪成指定大小,要求是图片不能够被裁剪,是缩小
 
var
jpgsrc: TJPEGImage;
bitmapsrc, bitmapdest: TBitmap;
begin
jpg := TJPEGImage.Create;
bitmapsrc := TBitmap.Create;
bitmapdest := TBitmap.Create;
try
jpg.LoadFromFile('d:/1.jpg');
bitmapsrc.assign(jpg);
bitmapdest.width := 800;
bitmapdest.height := 600;
bitmapdest.strechdraw(rect(0, 0, 800, 600), bitmapsrc);
jpg.assign(bitmapdest);
jpg.save('d:/2.jpg');
finally
jpg.Free;
bitmapsrc.free;
bitmapdest.free;
end;
 
没有strechdraw方法
 
拼写错误,用法也不对
要用: bitmapdest.canvas.StretchDraw
 
bitmapdest.canvas.stretchdraw(rect(0,0,800,600),image1.picture.graphic);
 
用ps处理呀.
 
缩小意味着会损失精度了哦
按缩小的比例取象素吧,1024/800, 768/600
 
多人接受答案了。
 
后退
顶部