JPG再压缩

xyh2007 2008-10-08 08:56:15
请问如何对JPG再次压缩,最好是无损而且压缩比率较高!比如1K图片压缩后只有几百字节.
...全文
409 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyh2012 2008-10-08
  • 打赏
  • 举报
回复
谢谢大家,继续讨论,看有没有什么好的方法实现无损压缩!
jingtan 2008-10-08
  • 打赏
  • 举报
回复
理论上数据压缩是有限度的...
VsirSoft 2008-10-08
  • 打赏
  • 举报
回复
下面这个例子是将图片拉伸的代码,但是跟你的没有关系 你只需要把图片载入改下质量就好,质量由0~100 越低越差 我在红色部分给你表明了,时间原因 你就自己改改吧 我就不多弄了





代码如下:(将图象变为200*200)

GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

CLSID encoderClsid;
EncoderParameters encoderParameters;
ULONG quality;
Status stat;
Image image(L"1.jpg");
Bitmap bitmap(200, 200, PixelFormat32bppARGB);
Graphics graph(&bitmap);
graph.DrawImage(&image, Rect(0,0,200,200));
GetEncoderClsid(L"image/jpeg", &encoderClsid);
//构造编码参数列表
//数组中只包含一个EncoderParameter对象
encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderQuality;
//参数类型为LONG
encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
//只设置一个参数
encoderParameters.Parameter[0].NumberOfValues = 1;


//设置JPEG图片质量为最好
quality = 100;

encoderParameters.Parameter[0].Value = &quality;
stat = bitmap.Save(L"1_2.jpg", &encoderClsid, &encoderParameters);
GdiplusShutdown(gdiplusToken);


Erorr 2008-10-08
  • 打赏
  • 举报
回复
没有可能,因为已经进行了哈夫曼编码,那个已经是最优的了,再进行其它编码说不定越压越大呢
JPEG2000主要是EBCOT算法,小波变换和算术编码,从数据变换的时候就超过了JPEG,算术编码也比哈夫曼编码少用一个码表
blueink_200451 2008-10-08
  • 打赏
  • 举报
回复
那东西已经被压得不能再压了,再怎讨论也有用啊,无损压缩必须要求足够的信息来还原数据,所以不管什么算法都有一个限度啊
xyh2007 2008-10-08
  • 打赏
  • 举报
回复
UP
wsjtianyu 2008-10-08
  • 打赏
  • 举报
回复
可以用JPEG2000试试,比JPEG效果好。用的是小波。
xyh2012 2008-10-08
  • 打赏
  • 举报
回复
可是我今天下载了个软件,的确能实现无损压缩,不知道他用的什么方法?
xyh2007 2008-10-08
  • 打赏
  • 举报
回复
可以有损压缩,但效果不能太差,不知有没有什么好的办法?
VsirSoft 2008-10-08
  • 打赏
  • 举报
回复
如果是无损的 我想应该不能再压了. jpg的编码已经很效率了.
用户 昵称 2008-10-08
  • 打赏
  • 举报
回复
好像不好办,rar压jpg都只能压下去一点。
wltg2001 2008-10-08
  • 打赏
  • 举报
回复
本来就已经是压缩的了,根本不可能再达到高压缩率
wltg2001 2008-10-08
  • 打赏
  • 举报
回复
谢谢大家,继续讨论,看有没有什么好的方法实现无损压缩!
==================
那东西已经被压得不能再压了,再怎讨论也有用啊,无损压缩必须要求足够的信息来还原数据,所以不管什么算法都有一个限度啊

19,472

社区成员

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

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