以前写过一篇博客《使用ImageMagick为你的网站减重》,涉及到的手段是:
- 在服务器端把图片缩放到合适的尺寸,避免在前端用css缩放图片。
- 用imagemagick的strip功能移出图片里的EXIF等多余信息。
- 压缩JPEG图片的质量,减少图片体积。
Lossless Compress With image_optim
上面的手段都是针对用户上传的JPEG图片。对于网站自身的banner或logo等图片也可以通过各种工具进行无损压缩来减少图片体积。
image_optim 是一个Ruby的gem,可以组合调用 advpng gifsicle jpegoptim jpegtran optipng pngcrush pngout 等图片优化工具。使用方法非常简单,并且可以看到每个图片优化的大小:
image_optim app/assets/images/*.{jpg,png,gif}
Baseline vs. progressive JPEGs
- 浏览器在渲染普通的Baseline类型JPEG是从上到下的。
- 而在渲染Progressive类型JPEG是渐进式的,在整个图片还没有加载完,就可以显示整个轮廓,逐渐变清晰,直到最后整张图片渲染完成。
使用Imagemagick转换Baseline JPEG为Progressive JPEG
从上面的两张gif图片演示的效果可以看出,Progressive JPEG渲染的更快,体验更好(个人认为瀑布流网站使用Baseline方式渲染体验更好,因为看起来更像瀑布......)。但是,Baseline JPEG是默认的方式,如果需要Progressive只能强制转换。
convert -interlace plane baseline.jpg progressive.jpg #转换成Progressive JPEG
exiftool progressive.jpg |grep Encoding # 检测转换的结果,如果为Progressive DCT, Huffman coding就说明转换成功。
carrierwave mini_magick processor:
def optimize
manipulate! do |img|
img.strip
img.combine_options do |c|
c.quality "80"
# Use Progressive DCT Instead of Baseline DCT.
c.interlace "plane"
c.colorspace "rgb" #据说cmyk在IE下有问题,没试过..
end
img
end
How to Detect Progressive JPEG
有一种说法是用file或identify命令获取到图片的类型为JFIF即是Progressive JPEG,但是经过多次试验,这个结论不靠谱,最靠谱的是上面使用的exiftool。
相关链接
- http://www.codinghorror.com/blog/2005/12/progressive-image-rendering.html
- http://www.zhangxinxu.com/wordpress/2013/01/progressive-jpeg-image-and-so-on/
- http://www.yuiblog.com/blog/2008/12/05/imageopt-4/
- http://hooopo.iteye.com/blog/620498
- http://imageoptim.com/
相关推荐
Linux 中使用 ImageMagick 命令行操作图像文件 在 Linux 中使用 ImageMagick 命令行操作图像文件,可以无需打开图像编辑器进行修改图像文件。convert 命令包含在 ImageMagick 安装包里。ImageMagick 可以安装在 ...
使用ImageMagick的创建,编辑,撰写,或转换位图图像。它可以读取和写入各种格式(超过200种)的图像,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,Postscript,PDF和SVG。使用ImageMagick可以调整图像大小,...
ImageMagick安装包;ImageMagick安装注意事项;pdf转imgphp中ImageMagick安装教程;ImageMagick安装包;ImageMagick安装注意事项;pdf转imgphp中ImageMagick安装教程;ImageMagick安装包;ImageMagick安装注意事项;...
在 Java 中使用 ImageMagick 需要先确认 JDK、Maven 正确安装,然后引入依赖 IM4Java 是 ImageMagick 的 Java API 包,它将 Java 代码转化成对 ImageMagick 的命令行调用。 IM4Java 的作用是将 Java 代码转成对 ...
《使用ImageMagick通过phpthumb生成缩略图详解》 在网页开发中,生成缩略图是一项常见的需求,尤其在处理用户上传的图片或者构建图片展示平台时。PHP作为常用的服务器端脚本语言,有着丰富的图像处理库。本文将重点...
2. **安装依赖**:在安装ImageMagick之前,确保系统已经安装了`gcc`编译器,并安装必要的依赖库,包括`tcl-devel`, `libpng-devel`, `libjpeg-devel`, `ghostscript-devel`, `bzip2-devel`, `freetype-devel`, `...
ImageMagick是由C语言编写的,但通过Java的JNI(Java Native Interface)技术,可以无缝集成到Java环境中,为Java开发者提供了丰富的图像处理功能。 ImageMagick的核心功能包括: 1. 图像转换:可以将一种图像格式...
你可以从官方网站`http://www.imagemagick.org/script/index.php`获取最新版本的安装程序,例如`ImageMagick-6.2.6-8-Q16-windows-dll.exe`,安装完成后将安装路径添加到系统环境变量PATH中,这样可以在命令行中直接...
例如,`convert JFIF.heic test1.jpg`将HEIC格式的JFIF.heic转换为JPEG格式的test1.jpg,而`convert test.jp2 test2.jpg`则将JP2格式的图片转换为JPEG格式。 在Java环境中,可以使用JavaMagick或JMagick这样的Java...
ImageMagick是一款强大的开源跨平台图像处理工具,它在IT领域中被广泛使用,尤其在网站开发、自动化脚本和图形设计中。这个工具能够读取、转换和写入多种图像格式,支持超过200种不同的图像文件类型,包括常见的JPEG...
### ImageMagick 使用手册知识点概览 #### 一、ImageMagick简介 ImageMagick是一款功能强大的开源软件工具集,用于创建、编辑或合成位图图像。它可以在图像上执行的操作包括转换颜色空间、应用模糊、锐化、噪点、...
在标题提到的版本“ImageMagick-6.9.11-16.tar.gz”中,我们看到的是一个压缩包文件,其格式为tar.gz,这是一种常见的Linux/Unix系统中的归档和压缩格式。 ImageMagick的主要功能包括但不限于以下几点: 1. 图像...
安装`imagemagick`通常可以通过访问其官方网站下载对应版本的安装包,例如提供的`ImageMagick-7.1.0-Q16`,这可能是适用于特定平台(如Windows、Linux或macOS)的版本。安装过程中,确保将`imagemagick`的可执行文件...
总的来说,"linux下可用的静态ImageMagick C库"是一个为Linux开发人员准备的便捷工具,它简化了图像处理功能的集成,避免了依赖管理的复杂性,但仍需要开发者具备一定的C语言和ImageMagick API使用经验。
如果你使用的是GD库,可以使用PHP的`imagepng()`函数来保存生成的图像。但考虑到需要处理HTML和PDF,更推荐使用Imagick扩展,它提供了对ImageMagick更全面的接口。在PHP 7.0中,你可以通过以下步骤安装Imagick扩展:...
较低版本的imagemagick,使用 imagemagick的扩展库必须使用比扩展库低的版本才行,包含三个版本。 ImageMagick-6.8.9-6-Q16-x86-dll_.exe ImageMagick-6.9.2-1-Q16-x64-dll.exe ImageMagick-6.9.3-7-vc14-x86.zip
这将创建一个名为`ImageMagick-6.7.5-0`的目录,包含源代码。 2. 进入解压后的目录: ```bash cd ImageMagick-6.7.5-0 ``` 3. 在编译前,确保你的系统已经安装了必要的依赖库,例如: - libjpeg(JPEG支持) - ...
1. **LICENSE**:这是ImageMagick的许可文件,它遵循Apache 2.0许可证,意味着你可以自由地使用、修改和分发该软件,但需遵守一定的条件,如保持原有版权信息。 2. **bin**:这个目录包含了ImageMagick的可执行文件...
如果你打算在PHP中使用ImageMagick,通常会通过PHP的Imagick扩展来调用这些底层功能。通过这个扩展,开发者可以在PHP脚本中方便地进行复杂的图像处理。 `lib`目录包含库文件,这些是ImageMagick的动态链接库(DLLs...