Jav*_*rez 218 imagemagick image-processing
我想用ImageMagick压缩JPG图像文件,但不能在大小上有太大差异.默认情况下,输出大小大于输入.我不知道为什么,但在添加一些+配置文件选项并设置质量后,我可以获得更小的尺寸,但仍然与原版相似.
输入图像为255kb,处理后的图像为264kb(使用+ profile删除配置文件,设置质量为70%).有没有办法将该图像压缩到150kb至少?那可能吗?我可以使用哪些ImageMagick选项?
Fel*_*oni 409
我总是使用:
在imagemagick应该是
convert -strip -interlace Plane -gaussian-blur 0.05 -quality 85% source.jpg result.jpg
Run Code Online (Sandbox Code Playgroud)
希望这很有用.
来源链接:http://www.yuiblog.com/blog/2008/12/05/imageopt-4/
来自@Fordi的评论(如果你愿意的话,别忘了竖起他的评论):如果你不喜欢模糊,请-sampling-factor 4:2:0改用.这样做可以将色度通道的分辨率降低一半,而不会影响眼睛锁定的亮度分辨率.如果你想在转换中获得更好的保真度,你可以通过指定-define jpeg:dct-method=float- 即使用更精确的浮点离散余弦变换而不是默认的快速整数版本来获得略微改进而不增加文件大小.
小智 51
我正在使用Google Pagespeed Insights图像优化指南,对于ImageMagick,他们建议使用以下内容:
-sampling-factor 4:2:0
-strip -quality
85 [它可以变化,我使用范围60-80]
-interlace
-colorspace RGB
ImageMagick中的命令:
convert image.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB image_converted.jpg
Run Code Online (Sandbox Code Playgroud)
使用这些选项,我可以节省高达40%的JPEG尺寸而不会有明显的损失.
小智 16
对于那些在PHP中使用Imagick类的人说:
$im -> gaussianBlurImage(0.8, 10); //blur
$im -> setImageCompressionQuality(85); //set compress quality to 85
Run Code Online (Sandbox Code Playgroud)
tui*_*eus 12
一旦我需要调整相机中的照片进行开发:
命令:
mogrify -quality "97%" -resize 2048x2048 -filter Lanczos -interlace Plane -gaussian-blur 0.05
Run Code Online (Sandbox Code Playgroud)
我的1920x1080分辨率显示器无法全屏显示任何变化.2048分辨率最适合以360 dpi的最高质量拍摄10厘米的照片.我不想剥掉它.
编辑:我注意到,即使没有模糊,我甚至可以获得更好的结果.没有模糊文件大小是原始的50%,但质量更好(缩放时).
小智 9
我会添加一个有用的旁注和一般建议,以尽量减少JPG和PNG.
首先,ImageMagick读取(或更好地"猜测" ......)输入jpeg压缩级别,因此如果您根本不添加-quality NN,输出应使用与输入相同的级别.有时候可能是一个重要的特征.否则默认级别是-quality 92(见www.imagemagick.org)
该建议是关于一个真正真棒免费工具ImageOptim,也可用于批量生产.
您可以获得更小的jpgs(以及pngs,尤其是在使用免费的ImageAlpha [非批处理]或免费的Pngyu之后,如果您需要批处理).
不仅如此,这些工具适用于Mac和Win以及命令行(我建议使用Brew进行安装,然后使用Brew公式进行搜索).
小智 7
我添加-adaptive-resize 60%到建议的命令,但有-quality 60%.
convert -strip -interlace Plane -gaussian-blur 0.05 -quality 60% -adaptive-resize 60% img_original.jpg img_resize.jpg
Run Code Online (Sandbox Code Playgroud)
这些是我的结果
我不确定这种转换是否会破坏我的形象,但老实说,我认为我的转换看起来不像废话.这是一个广角全景,我不关心细致的阻碍.
@JavisPerez——有没有办法将该图像至少压缩到 150kb?那可能吗?我可以使用哪些 ImageMagick 选项?
请参阅以下链接,其中 ImageMagick 中有一个选项可以指定写入 JPG 文件所需的输出文件大小。
http://www.imagemagick.org/Usage/formats/#jpg_write http://www.imagemagick.org/script/command-line-options.php#define
-define jpeg:extent={size}
As of IM v6.5.8-2 you can specify a maximum output filesize for the JPEG image. The size is specified with a suffix. For example "400kb".
convert image.jpg -define jpeg:extent=150kb result.jpg
Run Code Online (Sandbox Code Playgroud)
除了由于降低输入的 -quality 值而导致的任何损失之外,您还将通过解压缩和重新压缩而损失一些质量。
对于在 PHP 中使用Imagick 的人来说,这是一个完整的解决方案:
$im = new \Imagick($filePath);
$im->setImageCompression(\Imagick::COMPRESSION_JPEG);
$im->setImageCompressionQuality(85);
$im->stripImage();
$im->setInterlaceScheme(\Imagick::INTERLACE_PLANE);
// Try between 0 or 5 radius. If you find radius of 5
// produces too blurry pictures decrease to 0 until you
// find a good balance between size and quality.
$im->gaussianBlurImage(0.05, 5);
// Include this part if you also want to specify a maximum size for the images
$size = $im->getImageGeometry();
$maxWidth = 1920;
$maxHeight = 1080;
// ----------
// | |
// ----------
if($size['width'] >= $size['height']){
if($size['width'] > $maxWidth){
$im->resizeImage($maxWidth, 0, \Imagick::FILTER_LANCZOS, 1);
}
}
// ------
// | |
// | |
// | |
// | |
// ------
else{
if($size['height'] > $maxHeight){
$im->resizeImage(0, $maxHeight, \Imagick::FILTER_LANCZOS, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里自己做了一些实验,男孩确实让高斯模糊产生了很大的不同。我使用的最终命令是:
mogrify * -sampling-factor 4:2:0 -strip -quality 88 -interlace Plane -define jpeg:dct-method=float -colorspace RGB -gaussian-blur 0.05
Run Code Online (Sandbox Code Playgroud)
如果没有 0.05 的高斯模糊,它大约为 261kb,对于我正在测试的图像,它大约为 171KB。在放大复杂图像之前,1440p 显示器上的视觉差异是不明显的。
小智 5
一个非常古老但有用的答案。
我需要说的是,对于严肃的大摄影来说,-gaussian-blur不能接受的,不是压缩比。
下面进行比较,%95 与-gaussian-blur 0.05%85 没有模糊。原始 17.5MB(8MP,有很多缺陷),%95 无模糊 5MB,%85 无模糊 3036KB,%95 有模糊 3365KB。
也许像 0.02 这样较低的模糊效果会更好。
| 归档时间: |
|
| 查看次数: |
134805 次 |
| 最近记录: |