nic*_*ckf 66 jpeg image-processing image-compression
这实际上是一个两部分问题,因为我还没有完全理解这些东西是如何工作的:
我的情况:我正在编写一个让用户上传图片的网络应用程序.然后我的应用程序调整为可显示的内容(例如:640x480-ish)并保存文件以供日后使用.
我的问题:
我对此并不十分肯定,因为我认为:(让我们举一个极端的例子),如果某人有500万像素的图像以质量0保存,它就会像任何东西一样块状.将图像尺寸缩小到640x480,可以平滑块状,几乎不那么明显......直到我再次将质量保存为0 ...
在频谱的另一端,如果有一个图像是800x600,q = 0,调整到640x480不会改变它看起来像完全废话的事实,所以用q = 80保存将是多余的.
我甚至关闭了吗?
我在PHP上使用GD2库,如果有任何用处的话
小智 103
您可以通过ImageMagick查看压缩级别.可以在官方网站上找到下载和安装说明.
安装后,从命令行运行以下命令:
identify -format '%Q' yourimage.jpg
Run Code Online (Sandbox Code Playgroud)
你应该得到从0(低质量,小文件大小)到100(高质量,大文件大小)的值.
Ash*_*Ash 27
JPEG是一种有损格式.每次保存JPEG相同图像时,无论质量等级如何,都会降低实际图像质量.因此,即使您确实从文件中获得了质量级别,再次保存JPEG时也无法保持相同的质量(即使质量= 100).
您应该以尽可能高的质量保存JPEG文件大小.或使用无损格式,如PNG.
低质量的JPEG文件不会变得更加块状.而是减少颜色深度并移除图像部分的细节.您不能依赖较低质量的图像,并且在较小的尺寸下看起来不错.
根据JFIF规范.尽管存储了水平和垂直像素密度,但质量数(0-100)不存储在图像标题中.
JAR*_*ans 11
对于将来的访问者,检查给定jpeg的质量,您可以使用imagemagick工具:
$> identify -format '%Q' filename.jpg
92%
Run Code Online (Sandbox Code Playgroud)
Jpeg压缩算法具有一些影响结果图像质量的参数.
这些参数之一是量化表,其定义将在每个系数上使用多少位.不同的程序使用不同的quatization表.
某些程序允许用户设置质量等级0-100.但是这个数字没有共同的定位.使用Photoshop制作的图像质量为60%,需要46 KB,而使用GIMP制作的图像仅需26 KB.
量化表也不同.
还有其他参数,如子采样,dct方法等.
因此,您无法通过单个质量级别编号来描述所有这些,并且您无法通过单个数字来比较jpeg图像的质量.但你可以创建像photoshop或gimp这样的数字来描述尺寸与质量之间的差异.
更多信息:http: //patrakov.blogspot.com/2008/12/jpeg-quality-is-meaningless-number.html
通常的做法是将图像调整到适当的大小,然后应用jpeg.在这种情况下,大图像和中图像将具有相同的尺寸和质量.
小智 6
这是我发现效果很好的一个公式:
jpg100size(对于 98-100% 质量,不应超过的大小(以字节为单位))= 宽度*高度/1.7
jpgxsize = jpg100size*x(x = 百分比,例如 0.65)
因此,您可以使用这些来统计您的 jpg 上次保存的质量。如果你想将其降低到 65% 的质量,并且如果你想避免重新采样,你应该首先比较大小以确保它还没有太低,然后再降低质量
由于使用已有两个答案identify,因此,这也是一个输出文件名(一次扫描多个文件)的答案:
如果您希望有一个简单的输出filename: quality用于多个图像,则可以使用
identify -format '%f: %Q' *
Run Code Online (Sandbox Code Playgroud)
以显示文件名+压缩在当前目录中的所有文件。
| 归档时间: |
|
| 查看次数: |
35637 次 |
| 最近记录: |