Delphi 如何调整/压缩图像大小以使其小于300kb
我是Pascal和Delphi的新手,我正在尝试找出如何压缩和/或调整图像大小以使其小于300kb。我不知道如何开始,在哪里可以找到一个例子。有人知道这是否可能吗?给我看看或者给我举个例子?我正在使用RAD Studio XE4进行开发Delphi 如何调整/压缩图像大小以使其小于300kb,delphi,Delphi,我是Pascal和Delphi的新手,我正在尝试找出如何压缩和/或调整图像大小以使其小于300kb。我不知道如何开始,在哪里可以找到一个例子。有人知道这是否可能吗?给我看看或者给我举个例子?我正在使用RAD Studio XE4进行开发 假设我得到了一张最常用的图像,比如png或jpeg,它比1024x768大。如何将其设置为1024 x 768?调整图像大小的最简单方法可能是: procedure ResizeImage(Image : TGraphic; AWidth, AHeight :
假设我得到了一张最常用的图像,比如png或jpeg,它比1024x768大。如何将其设置为1024 x 768?调整图像大小的最简单方法可能是:
procedure ResizeImage(Image : TGraphic; AWidth, AHeight : Integer);
var bmp : TBitmap;
begin
bmp := TBitmap.Create;
try
bmp.PixelFormat := pf32bit;
bmp.Width := AWidth;
bmp.Height := AHeight;
bmp.Canvas.StretchDraw(Rect(0,0,AWidth, AHeight), Image);
Image.Assign(bmp);
finally
bmp.Free;
end;
end;
请注意,虽然简单,但它有许多缺陷。您可能会丢失透明信息。我不确定原始图像的元信息是否会被保留
也许不是所有的图形类都支持stretchdraw。我用JPEG进行了测试,但可能png或tif不支持
该例程还假设TGraphic类知道如何为自己分配位图,这是大多数(如果不是全部的话)应该做的
至于压缩,许多图像格式已经压缩了数据,JPEG,PNG,一些TIFF。拥有比现有更高效的压缩算法绝非易事 你需要先决定如何解决这个问题。1.您想缩小还是压缩?裁员肯定会丢失信息。压缩可以是有损或无损的。2.你有什么样的形象?照片最好使用JPEG有损压缩。屏幕截图通常最好使用PNG无损压缩。必须能够上传最常用的图像类型,如PNG、jpeg。。。所以我可以限制图片的类型。但是后来呢?比方说,如果图像较大,我希望图像为1024 x768。我该怎么做?获取一个支持高质量图像大小调整的图像库。您可能需要花一些时间评估候选库。有很多。这里的一个问题不是进行评估的方法。@MmynameStackflow:为什么不先使用谷歌?这应该是你的第一步!看到这个话题我首先想到的是结果和完整的解决方案。。。