我给你讲一种非常简单的方法:
第一步:在窗体上放上image1和image2两个图片控件。再放一个Button按钮控件。
第二步:在image1的Picture属性中载入一张JPG或者BMP图片。而image2不要管它。
第三步:双击Button进行按扭编写环境。写入下面代码:
Image2.Height := 200;//新图像高度 Image2.Width := 300;//新图像宽度 Image2.Canvas.StretchDraw(Image2.ClientRect,Image1.Picture.Graphic); Image2.Picture.SaveToFile('c:/b.jpg');//保存新图像
你没有说要压缩,所以我没写压缩的代码。其实这种情况最好是要压缩一下,压缩代码也非常简单
uses添加Jpeg.
var bmp,bmp1:TBitmap; jpeg:TJpegImage; str:string; begin str:='你的图片的完整路径+图片名' if (ExtractFileExt(str)='.JPG') or (ExtractFileExt(str)='.jpg') then begin jpeg:=TJpegImage.Create; try jpeg.LoadFromFile(str); bmp:=TBitmap.Create; try bmp.Width:=strtoint(edit1.Text); bmp.Height:=strtoint(edit2.Text); bmp.Canvas.StretchDraw(rect(0,0,bmp.Width,bmp.Height),jpeg); jpeg.Assign(bmp); finally bmp.Free; end; jpeg.SaveToFile('D:/aa.jpg'); finally jpeg.Free; end; end; end; if (ExtractFileExt(str)='.BMP') or (ExtractFileExt(str)='.bmp') then begin bmp1:=TBitmap.Create; try bmp1.LoadFromFile(str); bmp:=Tbitmap.Create; try bmp.Width:=strtoint(edit1.Text); bmp.Height:=strtoint(edit2.Text); bmp.Canvas.StretchDraw(rect(0,0,bmp.Width,bmp.Height),bmp1); bmp1.Assign(bmp); finally bmp.Free; bmp1.SaveToFile('D:/aa.bmp'); end; finally bmp1.Free; end; end; end;
只是edit1和edit2中添加的bmp的宽和高不要太大了,否则会出现“储存空间不足”错误。具体多大数值就超出了,具体情况具体分析,你可以自己试一下。
|
请发表评论