为什么弃用nginx压缩图片改用GraphicsMagick

**前篇文章中考虑用nginx压缩,但是觉得很不靠谱,为什么呢?因为有部分图片会自动旋转:绝大部分图片是正常的,但是有部分图片缩略后自动旋转,我也是醉了,考虑到后期也不好修改,查了一下资料决定用淘宝的插件:GraphicMagick **

下面我要把这张让我醉了的图片:

这里是我搭建的ceph上传这张图片地址

通过nginx压缩以后的地址

如果以上图片地址不可用了,可以直接用如下的这张图片:

为什么弃用nginx压缩图片改用GraphicsMagick_第1张图片
ff.jpeg

压缩了以后:

为什么弃用nginx压缩图片改用GraphicsMagick_第2张图片
Paste_Image.png

尼玛这是明显翻转了90度,这是几个意思,有的图片会翻转,有的不会,我也没有观察出来这张和其他有什么必然的区别,哎,nginx的 image filter插件,也不晓得如何改,所以直接换了:

谈谈我换的经历:
我在google中搜索 [Java 缩略图]
这篇文章直接操作一遍,依然如此
我又找了几个:用到jdk的压缩的都会有这个问题:不晓得其他人是否遇到过,还是我使用方式有问题,求高手指教

import java.io.*;  
import java.util.Date;  
import java.awt.*;  
import java.awt.image.*;  
import javax.imageio.ImageIO;  
import com.sun.image.codec.jpeg.*;  

所以决定换方案: 用GraphicMagick,据说淘宝网就是用这个:这里是淘宝的说明
另外这篇文章关于缩略图的方案进行了很好的说明

下面开始GraphicMagick的安装 官网地址

我安装参考了这两篇文章,重点是第一篇:

1、GraphicMagick的安装
2、安装说明

首先下载GraphicMagick的安装包

tar -zxvf GraphicsMagick-1.3.25.tar.gz
cd GraphicsMagick-1.3.25
执行./configure

最后出现如下显示:

为什么弃用nginx压缩图片改用GraphicsMagick_第3张图片
Paste_Image.png

注意: 默认的我红色箭头指向是 no的
如果需要支持png jpeg freetype 需要先安装这三个插件,好像GraphicMagick后来支持了png,需要单独配置jpeg了。这里我三个都进行配置一下:

首先下载这三个包:

Paste_Image.png

注意这个 jpegsrc.v9b.tar.gz最后下载这个,我下载过6b的好像不行,估计我安装6b的时候出现了问题
1、jpeg安装配置:

tar -zxvf jpegsrc.v9b.tar.gz
cd jpeg-9b
./configure
make
make install
ln -s /usr/local/lib/libjpeg* /lib/
ln -s /usr/local/lib/libjpeg* /lib64/

注意ln之前可以看下/usr/local/lib的位置是否包含对应的链接库

2、安装png

tar -zxvf libpng-1.6.26.tar.gz
cd libpng-1.6.26
./configure
make
make install
ln -s /usr/local/lib/libpng* /lib/
ln -s /usr/local/lib/libpng* /lib64/

3、安装freetype

 tar -zxvf freetype-2.4.1.tar.gz
 cd freetype-2.4.1
 ./configure
 make
 make install
 ln -s /usr/local/lib/freetype* /lib/
 ln -s /usr/local/lib/freetype* /lib64/

vim ~/.bashrc配置环境变量:


Paste_Image.png

source ~/.bashrc

然后 执行 gm可以看到生效了

为什么弃用nginx压缩图片改用GraphicsMagick_第4张图片
Paste_Image.png

这个时候迫不及待的压缩一下:
执行如下命令:

gm convert ff.jpeg -resize 200x200 200.jpg

执行后的结果:

为什么弃用nginx压缩图片改用GraphicsMagick_第5张图片
Paste_Image.png

这张终于没有翻转了,下一步用im4Java对GraphicMagick进行操作即可

参考一:
参考二:

你可能感兴趣的:(为什么弃用nginx压缩图片改用GraphicsMagick)