为什么再次JPG压缩反而比原图大了

MeXP 2012-11-29 10:44:11
有一个需求就是jpg文件上限为300k。
拿到一个400k的jpg原图2448*2048,晚上的背景较黑的图片。
1、用cximage来压缩,不改变分辨率情况下,设置质量到75,保存结果别原图大很多,有559k。采用的4:1:1.
2、使用acdsee,来压缩,采用优化霍夫曼编码,水平2:1颜色采样,质量75,保存后389k,缩小了一点。

问题
1、为什么用cximage,质量是75不高,反而压缩后体积增大,那么如何设置压缩参数,不调整分辨率的情况下,能获取较小的体积。
减小分辨率,确实能使体积减少不小。不改变分辨率是想看看cximage还有什么参数或者什么函数能获得较小体积。
2、是否有更好的压缩库,能获得较好的压缩率,能替代cximage。
...全文
1034 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MeXP 2012-12-24
  • 打赏
  • 举报
回复
JPG图读取后,还是内存展开,用其他库重新压缩,未必能得到原来的大小。就得视为重新压缩。 结贴吧。
Squall_zy 2012-12-17
  • 打赏
  • 举报
回复
算法不同,压缩后的图像的确有可能比原图大,这是正常情况。 但是,在压缩前,你所使用的压缩库应该会告诉你“应创建多大的缓冲来装结果文件”。 这里我给你推荐一个库(IJL)。方面、小巧、强大,最让我喜欢的是效率高。 Intel(R) JPEG Library (IJL).
e_feeling 2012-12-16
  • 打赏
  • 举报
回复
质量参数再小一点或者图像平滑处理一下
MoreWindows 2012-12-02
  • 打赏
  • 举报
回复
用CImage吧。
百事烟 2012-11-30
  • 打赏
  • 举报
回复
库与库之间都差不多,只能降低图片质量,不过jpg转bmp再jpg对图片伤害有点大 遇过类似问题,不过那个原来的jpg也是我自己产生的,后来解决的办法是第一次保存jpg后不释放原始的bmp,第二次保存jpg的时候还是用的原始的bmp,质量降低一点图片就小了,这样图片看上去质量也不影响很多
fengbingchun 2012-11-30
  • 打赏
  • 举报
回复
不应该呀,我以前也用CxImage的函数来对jpg进行简单压缩

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧