比如1MB的JPG图片,不改变像素大小,把容量压缩到100KB,用TWICImage类如何实现,麻烦老师给代码参考,谢谢。
最好支持大部分图片格式,JPG BMP GIF PNG TIF。
delphi 利用TWICImage类来做图片的像素压缩?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 堕落恶魔_Delphi 2018-07-03 05:18关注
只有有损处理才能做到这点, 处理方式取决于你的图像格式
对于JPG来说, 就是调整压缩比了, TWICImage没有针对JPG封装压缩比接口, 可以使用TJPGEImage.CompressionQuality来修改(1压缩比最大质量最差 100压缩比最小质量最好)
使用方式类似如下代码, 值得注意的是, 必须要先把原始图像转换为BMP格式才能调用TJPEGImage的压缩(参看Compress过程帮助信息)var Jpg,Jpo:TJPEGImage; Bmp:TBitmap; begin Bmp:=TBitmap.Create; Jpo:=TJPEGImage.Create; Jpo.LoadFromFile('1.Jpg'); Bmp.Assign(Jpo); Jpg:=TJPEGImage.Create; Jpg.Assign(Bmp); Jpg.CompressionQuality:=30; Jpg.Compress; Jpg.SaveToFile('2.jpg'); Jpg.Free; Jpo.Free; Bmp.Free; end;
另外还有2中方式可以考虑
1.使用其他图像格式, 比如GIF PNG 不过这个一般变化不大 达不到1M变成100K的效果
2.降低颜色位数, 这个一般用于BMP格式, 对于颜色不复杂的图像效果很明显另外, 说一句, 除了某些特殊内容图片(比如大量纯色块图片), 在不想降低分辨率的情况下不太可能达到都是JPG格式大小又能达到1/10的压缩比, 就算达到了画面也可以用惨不忍睹来形容
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 zynq7015,PCIE读写延时偏大
- ¥15 使用spss做psm(倾向性评分匹配)遇到问题
- ¥20 vue+UEditor附件上传问题
- ¥15 想做个WPS的自动化代码,不知道能做的起不。
- ¥15 uniApp,生成安卓安卓包后,黑暗主题中间内容不生效,底部导航正常
- ¥15 斯坦福自动漂移非线性模型反解
- ¥15 学习Python如何找兼职
- ¥15 python结合Matlab仿真忆阻器
- ¥35 有人会注册whatsaop协议号吗?
- ¥15 lead dbs 无法导入影像数据