如何降低JPG图像到指定值大小 ( 积分: 50 )

  • 主题发起人 主题发起人 levi
  • 开始时间 开始时间
L

levi

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,小弟有一事不解,望高手指点
1、JPG图像太大时,经常发现保存到BOLB字段时发时下半幅图像丢失的情况,一般是什么原因?
2、如何将JPG的图片缩小成指定的大小(指的是容量)。比如说原来2M的图片,我想把缩小成200K的大小。我试过了,单纯计算原图像的长与宽,然后按比例缩小长宽,再StretchDraw后,得到的图像还是无法达到指定大小。用jpg.CompressionQuality,然后再jpg.Compress,能降低,但是不知道要降到什么值才能达到指定大小,如果用循环一直降,到符合为止,这样又速度、效率不好,内存占用又高。请问大家在这点小有什么好的想法?
 
各位高手,小弟有一事不解,望高手指点
1、JPG图像太大时,经常发现保存到BOLB字段时发时下半幅图像丢失的情况,一般是什么原因?
2、如何将JPG的图片缩小成指定的大小(指的是容量)。比如说原来2M的图片,我想把缩小成200K的大小。我试过了,单纯计算原图像的长与宽,然后按比例缩小长宽,再StretchDraw后,得到的图像还是无法达到指定大小。用jpg.CompressionQuality,然后再jpg.Compress,能降低,但是不知道要降到什么值才能达到指定大小,如果用循环一直降,到符合为止,这样又速度、效率不好,内存占用又高。请问大家在这点小有什么好的想法?
 
http://www.dcmscn.cn/dispbbs.asp?boardID=8&ID=32&page=1

这个控件里面有你要的那一段!
 
谢谢楼上的朋友。
对于BMP,这样处理是可以的,基本上其尺寸与大小是呈线性的,但是JPG不一样,他的存储大小与尺寸大小是非线性的。所以单纯靠计算尺寸来减少JPG的大小是不精确的。
不知道我对链接代码的理解是否正确。
 
顶一下,急等哦
 
你也说了,jpeg是非线性的,所以不能一次就得到适合的文件大小啊,最少也要两次吧。

我经常用fireworks做程序用的图像资源,他提供了预算生成文件大小,但也没有指定文件大小的功能。图片文件最终的体积和分辨率 颜色数 压缩比等很多参数有关系,只限定了最终大小,程序很难快速自动找出匹配的压缩方案吧~~
 
那么如何把他压缩到指定大小以内呢?
 
我也遇到过相同问题, 你到www.xat.com下载 JPEG Optimizer OCX控件"xatocx.exe",该控件允许你把JPG和PNG图像文件优化成尽可能最小的。这个控件可以读取BMP、JPG、PNG和TIF文件并可输出JPG或者PNG文件。还可以改变图像的尺寸(指定容量)并提供一个图像框界面。不过该控件仅使用30天,购买的要990$

(如果你只是要处理jpg图,photoshop附带的ImageReady就有该功能)
 
TO: jyz366
谢谢哦!
我的意思是有没有自己写个过程或函数,达到这个功能呢?要求在读取图像到BLOB字段或DBIMAGE时马上处理好,而不是先用第三方处理好,再读取处理后的图片。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部