delphi – 如何减小JPG文件的大小?
发布时间:2020-12-15 09:43:45 所属栏目:大数据 来源:网络整理
导读:几天前我问了这个问题并得到了答案: How to add a picture frame and insert the text in the image? 现在,当我将来自TPanel(1x形状,1x TImage,2x TLabel)的内容保存为JPG文件时, JPG文件的大小从TIk的图片大小的20kb增加到620kb. 尺寸几乎相同.原始JPG文件
几天前我问了这个问题并得到了答案:
How to add a picture frame and insert the text in the image? 现在,当我将来自TPanel(1x形状,1x TImage,2x TLabel)的内容保存为JPG文件时, 尺寸几乎相同.原始JPG文件320×320,新JPG图片361×440. 那么,如何减小这个尺寸呢? 这是第一个问题的答案,来自@iPath,这就是新JPG文件的创建方式: procedure TForm1.SavePanelAsImage; var img: TBitmap; begin img := TBitmap.Create; try img.Width := fpPanel.Width; img.Height := fpPanel.Height; fpPanel.PaintTo(img.Canvas,0); img.SaveToFile(fpFileName); finally img.Free; end; end; 解决方法
您保存的内容不是JPEG图像.您已保存Windows位图.那根本没有压缩.碰巧有.jpg扩展,但这不会使文件本身成为JPEG.
您需要使用TJPEGImage来保存文件.使用 uses jpeg; procedure TForm1.SavePanelAsImage; var img: TBitmap; JpegImage: TJPEGImage; begin img := TBitmap.Create; try img.Width := fpPanel.Width; img.Height := fpPanel.Height; fpPanel.PaintTo(img.Canvas,0); JpegImage := TJPEGImage.Create; try JpegImage.CompressionQuality := ...;//you decide the value JpegImage.Assign(img); JpegImage.SaveToFile(fpFileName); finally JpegImage.Free; end; finally img.Free; end; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |