Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization ImageMagick:网站的图像优化_Optimization_Image Processing_Imagemagick - Fatal编程技术网

Optimization ImageMagick:网站的图像优化

Optimization ImageMagick:网站的图像优化,optimization,image-processing,imagemagick,Optimization,Image Processing,Imagemagick,我有一台相机,可以拍摄3008x2000像素的照片。我使用ImageMagick来缩放和调整要放在我网站上的照片的大小。我在网站上使用的图像大小是602x400。我使用此命令减小大小: convert DSC_0124.JPG -scale 20% -size 24% img1.jpg 这将生成大小为602x400像素的图像。但文件大小将始终大于250KB。单个html页面上的图像越多,意味着页面越重,加载时间越长。image magic中是否有任何功能可以帮助我将文件大小保持在尽可能小的范围

我有一台相机,可以拍摄3008x2000像素的照片。我使用ImageMagick来缩放和调整要放在我网站上的照片的大小。我在网站上使用的图像大小是602x400。我使用此命令减小大小:

convert DSC_0124.JPG -scale 20% -size 24% img1.jpg

这将生成大小为602x400像素的图像。但文件大小将始终大于250KB。单个html页面上的图像越多,意味着页面越重,加载时间越长。image magic中是否有任何功能可以帮助我将文件大小保持在尽可能小的范围内(可能在100KB以下)。但图像大小应该相同,即602x400px。我已经通过MS Windows工具实现了类似的优化。由于它没有命令行选项,因此当有数百个图像需要转换时,它不会有多大帮助。

使用
-quality
设置压缩级别:

convert DSC_0124.JPG -scale 20% -size 24% -quality [0..100] img1.jpg

使用Delan建议的带有额外“-strip”标志的命令删除EXIF数据,这大大减少了我的一些图像的大小。下面是一个用于unix平台的bash脚本,但第二部分只能用于单个映像

for X in *.jpg; do convert "$X" -resize 602x400 -strip -quality 86 "$X"; done

这将转换目录中的所有图像。

< P>如果你在PHP上运行你的网站,你可能想考虑SIR图像大小调整脚本,它对不同的约束进行了很好的调整,并缓存了结果。p>
Parameters:
w    Maximum width
h    Maximum height
c    Crop ratio
q    Quality
b    Background fill color
p    Progressive


您可以将输出图像的最大大小定义为100KB,如下所示:

convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg

小心,要调整大小的“!”标志会忽略纵横比和
可能是特殊的shell字符,通常需要转义。警告:使用相同输入和输出文件名的
convert
可能是不安全的操作。要么写入临时文件名并有条件地覆盖原始文件,要么只使用mogrify(ImageMagick套件的一部分)。
mogrify(1)
的手册页中说明“mogrify覆盖原始图像文件,而convert(1)写入不同的图像文件。”