TJPEGImage压缩图片时的问题

LWLIFE 2011-06-02 08:33:30
我现在使用TJPEGImage类CompressionQuality方法压缩图片,如果图片为8位的灰度图像则压缩之前要调用一下DIBNeeded方法,如果为彩色图片则调用JPEGNeeded方法,现在怎么判断应该调用JPEGNeeded还是DIBNeeded呢?
...全文
470 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tst1255 2011-06-20
  • 打赏
  • 举报
回复
如果你是把老的.Jpg文件打开处理,如叠加信息,那就得解压缩成bmp才能处理吧,解压到Tbitmap类后不就知道格式了吗?

而且 .Jpg文件应该都是24位色压缩的,如果你是打开原来的.jpg文件,它应该就是24位色。


如果你不处理jpg文件,为啥还要压缩?原来的文件不就压好了吗?想重新压缩?重新压缩也的解开才能重新编码吧。

LWLIFE 2011-06-20
  • 打赏
  • 举报
回复
应该是一张JPG图像,使用TJPEGImage类加载进来的,难道要先转成BMP判断HandleType和PixelFormat然后在处理吗?
tst1255 2011-06-17
  • 打赏
  • 举报
回复
你压缩前的图像放在什么位置?是一段内存还是TBitmap对象,如果是自定义的一段普通内存,那里面存放的图像格式是你应该知道的,如果是放在TBitmap对象立的,TBitmap的HandleType和PixelFormat可以帮助你知道是哪种类型的图像。
LWLIFE 2011-06-13
  • 打赏
  • 举报
回复
等人回复中。
LWLIFE 2011-06-10
  • 打赏
  • 举报
回复
大家都放假了呀,
tst1255 2011-06-09
  • 打赏
  • 举报
回复
没压缩过8位的灰度图像,说不清楚,压缩过24位图,不过也没调用过JPEGNeeded方法,我的步骤是:
Graph::TBitmap *bmp = new ...
TJPEGImage *jpg = new ..

... // 图像存放到bmp里
jpg->Assign(bmp );
jpg->SavetoFile( ...);

delete jpg;
delete bmp;

另外可用试用 ijl15.dll,它压缩、存储文件的效率明显比BCB的自带的jpg压缩、存储效率高。
LWLIFE 2011-06-09
  • 打赏
  • 举报
回复
高手都哪里去了呢?
futulove 2011-06-08
  • 打赏
  • 举报
回复
悄悄路过
LWLIFE 2011-06-03
  • 打赏
  • 举报
回复
顶贴求答案
LWLIFE 2011-06-02
  • 打赏
  • 举报
回复
这个问题没人清楚吗?
LWLIFE 2011-06-02
  • 打赏
  • 举报
回复
我倒,这么抢手的问题竟然没人回答

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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