缩略图-快速开始(GraphicsMagick )
文章目录
- 一、为什么使用缩略图
- 二、缩略图原理
- 三、JAVA缩略图
- 1. 开源类库 Thumbnailator
- 2. GraphicsMagick+im4java图片处理
- 四、C实现缩略图
- 1. GraphicsMagick
- 2. windows 下安装GraphicsMagick
- 3. linux 下编译安装 GraphicsMagick
- 4. graphicsmagick常用命令
- 1)显示图像文件详细信息
- 2) 格式转换
- 3) 调整图像dpi和大小
- 4) 在图像上添加文字
- 5) 从gif文件中抽取第一帧
- 6)建立gif图像
- 五、ImageMagick还是GraphicsMagick?
- 六、参考
一、为什么使用缩略图
加快页面显示速度,
比如一个页面上要显示10个图片,如果都用3000像素级别的原图的话(在CSS里设置图片显示为00*100,其实还是会加载原图然后缩略的),一个页面的大小和显示速度可想而知。为了布局
比如为了布局需要,页面上需要显示的都是150100(比例3:2)的图,而你的原图是600800(比例3:4),直接通过CSS压缩图片的话图片肯定变形严重,所以生成缩略图截取符合比例的缩略部分就美观多了.
总结:其最核心的需求,就是提升加载性能。
二、缩略图原理
一般的话采取缩点,就是按比例从原始图像中的位置上等距抽取一些像素生成新图。但不同的库具体算法有所不同。
三、JAVA缩略图
使用JDK自带的方法处理图片非常的不方便,目前处理图片主流的有两种,第一种依赖环境需要安装imageMagick和GraphicsMagick,第二种是使用Google开源的Thumbnailator这个使用起来简单点,不过相对来说Thumbnailator在处理图片的时候还原度没有第一种的好,不过能满足绝大多数的情况。
1. 开源类库 Thumbnailator
Thumbnailator 是一个优秀的图片处理开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。
支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。
2. GraphicsMagick+im4java图片处理
[推荐]GraphicsMagick+im4java图片处理
参考URL: https://www.cnblogs.com/xieegai/p/8438918.html
利用 imagemagic 对图片进行处理,java工程中,使用im4java来操作imagemagic的api
参考URL: https://cloud.tencent.com/developer/article/1038086
im4java只是封装ImageMagick的命令。所以不需要依赖dll,也不存在64位系统调用32位dll的问题.而且im4java支持GraphicsMagick,GraphicsMagick是ImageMagick的分支。相对ImageMagick ,GraphicsMagick更稳定,消耗资源更少。最重要的是不依赖dll环境
所以使用 im4java 是更好的选择。
下载 im4java
downlaod 地址:http://sourceforge.net/projects/im4java/?source=directory
im4java的思路是通过线程或者进程执行graphicsmagick的命令,它的api只是为了能生成命令,而不是调用graphicsmagick的库。
IM4JAVA是同时支持ImageMagick和GraphicsMagick的,这里是bool值,如果为true则使用GM,如果为false支持IM。
四、C实现缩略图
1. GraphicsMagick
官网:http://www.graphicsmagick.org/
GraphicsMagick最初源于ImageMagick5.5.2(2002年11月),但从那时起就完全独立于ImageMagick项目。自从ImageMagick的fork以来,许多作者使用开放的开发模型进行了许多改进(参见新闻),但没有破坏API或实用程序操作。
GraphicsMagick提供了一系列实用程序、编程接口和gui,以支持文件格式转换、图像处理和2D矢量渲染。
GraphicsMagick最初基于ImageMagick Studio的ImageMagick(最初由杜邦的John Cristy编写)。GraphicsMagick的目标是提供尽可能高质量的产品,同时鼓励所有感兴趣的开发人员开放和积极参与。GraphicsMagick使用许可证旨在允许它用于任何应用程序,包括专有或GPLed应用程序。有关GraphicsMagick许可证,请参阅文件Copyright.txt。
总结: GraphicsMagick 号称图像处理领域的瑞士军刀。 可以看作改良版的ImageMagick。GraphicsMagick 功能强大。
2. windows 下安装GraphicsMagick
官网下载http://www.graphicsmagick.org/
双击GraphicsMagick-1.3.33-Q16-win64-dll.exe
快捷键win+r -》输入打开运行cmd,并输入‘gm’即表示安装成功
3. linux 下编译安装 GraphicsMagick
CentOS安装GraphicsMagick
参考URL: https://www.centos.bz/2019/02/centos%E5%AE%89%E8%A3%85graphicsmagick/
参考官网安装Installing GraphicsMagick
参考URL: http://www.graphicsmagick.org/README.html
- 源码下载:搜索GraphicsMagick官方网站,进入下载页。
http://www.graphicsmagick.org/download.html
wget https://nchc.dl.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.33/GraphicsMagick-1.3.33.tar.gz
- 安装依赖
安装编译环境
yum install -y gcc gcc-c++ make cmake autoconf automake
依赖:libpng和libjpeg等图片开发包的安装, 这些yum之前有装,建议先yum remove,再yum install
yum install -y libjpeg-devel libjpeg
yum install -y libpng-devel libpng
yum install -y giflib-devel giflib
- 编译安装GM
#安装GraphicsMagick
tar -zxvf GraphicsMagick-1.3.33.tar.gz
cd GraphicsMagick-1.3.33
./configure --prefix=/usr/local/GraphicsMagick
在执行完上述命令后会有一段输出,可以查看GraphicsMagick支持的图片格式,在Configured value下为yes的表示为支持,PNG、JPEG v1和ZLIB必须为yes
注意: 前面安装了yum正确安装png、jpeg依赖,这里显示就会为yes,否则为no。
编译安装make && make install
- 设置环境变量
vim /etc/profile.d/gmagick.sh
export GMAGICK_HOME="/usr/local/GraphicsMagick"
export PATH="$GMAGICK_HOME/bin:$PATH"
LD_LIBRARY_PATH=$GMAGICK_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
生效配置
source /etc/profile.d/gmagick.sh
- 验证是否成功安装
gm version
使用命令查看GraphicsMagick所支持的图片格式:
# gm convert -list formats
如果列表中如果显示PNG、JPEG、GIF等则表示已支持图片转换
4. graphicsmagick常用命令
GraphicsMagick 1.3.23 常用命令
参考URL: https://blog.csdn.net/revitalizing/article/details/52281828
graphicsmagick常用命令
参考URL: https://www.cnblogs.com/yesyes/p/6921130.html
官网命令参考: http://www.graphicsmagick.org/utilities.html
1)显示图像文件详细信息
[root@localhost ~]# gm identify a.jpg
a.jpg JPEG 601x601+0+0 DirectClass 8-bit 11.8Ki 0.000u 0m:0.000002s
识别图片(高级)
gm identify -verbose a.jpg
结果:打印出很多信息。
2) 格式转换
gm convert a.jpg a.pdf(转换为pdf)
3) 调整图像dpi和大小
gm convert -density 288 -geometry 25% a.gif b.gif
(缩小为原先的1/4,并且dpi为288)
gm convert -resize 640x480 a.gif a_640_480.gif
(转换为640x480的图像)
4) 在图像上添加文字
gm convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here’” a.jpg a_文字.png
5) 从gif文件中抽取第一帧
gm convert “Image.gif[0]” first.gif
6)建立gif图像
gm convert -delay 20 frame.gif animation.gif
gm convert -loop 50 frame.gif animation.gif
(让动画循环50次)
m convert -delay 20 frame1.gif -delay 10 frame2.gif -delay 5 frame3.gif animation.gif
(对每一帧手动指定延时)
五、ImageMagick还是GraphicsMagick?
ImageMagick还是GraphicsMagick?
参考URL: https://www.cnblogs.com/findumars/p/5597299.html
GD、ImageMagick、GraphicsMagick
参考URL: https://www.cnblogs.com/flyyu21/p/6379052.html
ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于 ImageMagick,但是它的效率更强悍,就好比Apache和Nginx一样,一个功能更强,一个效率更胜。据说Flickr原来就用ImageMagick,后来改成了GraphicsMagick。似乎就是因为效率更好些。淘宝用于图片resize和水印的工具不是imagemagick而是graphicsmagick。
官方描述:
与ImageMagick或其他流行软件相比,更喜欢GraphicsMagick的原因如下:
- GM比ImageMagick效率更高,因此它可以使用更少的资源更快地完成任务。
- GM比ImageMagick更小、更轻(安装小3-5倍)。
- GM被用于处理世界上最大的照片网站(如Flickr和Etsy)上的数十亿份文件。
- GM与其他已安装的软件不冲突。
- GM比ImageMagick遭受更少的安全问题和攻击。
- GM参与了谷歌的oss模糊项目(自2018年2月起)。
- GM valgrind的100% clean (memcheck和helgrind)。
- GM使用ASan通过了严格的内存错误测试。
- GM使用(UBSan)通过了未定义行为测试。
- GM有一个全面的手册页。
- GM提供了API和ABI稳定性以及可以依赖的托管版本(ImageMagick没有)。
- GM提供了详细但可理解的变更日志和新闻文件(ImageMagick没有)。
- GM是免费的,可以用来支持开放和专有的应用程序。
- GM是根据X11风格的许可证(MIT许可证)发布的,该许可证由开源计划批准,推荐osccc使用,并与GNU GPL兼容。
- GM源代码是在Mercurial中管理的,Mercurial是一个分布式的源代码管理工具,支持本地更改的管理。存储库的历史可以追溯到1998年。
- 2015年5月25日,根据Coverity分析,GM每1000行代码(包括293341行代码)有0.00(零)个缺陷。
- GM的开发人员贡献了其他免费公开项目。
GraphicsMagick的版权归GraphicsMagick组和许多其他组所有。
以下是GraphicsMagick可以做的几个例子:
- 将图像从一种格式转换为另一种格式(如TIFF到JPEG)
- 调整大小、旋转、锐化、减少颜色或向图像添加特殊效果。
- 创建缩略图图像的蒙太奇
- 创建适合在Web上使用的透明图像
- 比较两个图像
- 将一组图像转换为GIF动画序列
- 通过组合多个单独的图像创建合成
- 在图像上绘制形状或文本
- 用边框装饰图像
- 描述图像的格式和特征
结论: GraphicsMagick 相对比较强大,使用GraphicsMagick 。
六、参考
ImageMagick还是GraphicsMagick?
参考URL: https://www.cnblogs.com/findumars/p/5597299.html
缩略图-快速开始(GraphicsMagick )相关推荐
- Bilibili,B站视频缩略图快速预览实现再分析
之前的这篇文章曾经有过一次分析 在B站视频搜索结果中,可以在不进入视频的状态下对视频快速预览.如果你对这方面有兴趣,可以和我们一群程序员交流学习,共同进步 695623459 今天详细分析和复现一下实 ...
- 【ABviewer从零开始教学查看器篇③】打开文件之缩略图菜单
ABViewer是一款高质量.高效率.低成本的多功能设计及工程文档管理工具,能为您提供全面的专业的浏览及编辑功能,同时支持30多种光栅和矢量图形格式. 在小编看来,ABViewer是一款非常简单且实用 ...
- 【Windows】显示缩略图非图标/开启缩略图
问题 科研实验产生了大量的实验结果图片,为了快速发现较好的实验结构,此时需要通过图像缩略图进行快速定位,然而,有些Windows相关错误的设置导致无法预览缩略图,如下所示: 方法 通过下面步骤可以实现 ...
- 文件打开不关闭程序会输出吗_干货!很多资深用户都不知道的10个BOOX阅读器使用技巧,很实用!...
近期我们在公众号后台.知乎.贴吧等平台,都收到了很多用户的关于阅读器使用上的一些问题咨询,比如如何设置屏保.如何安装字体.如何自定义笔记模板.如何去除PDF水印等. 今天,我们挑了10个大家最常咨询的 ...
- PgwSlideshow-基于Jquery的图片轮播插件
友情链接:http://www.htmleaf.com/Demo/201504031619.html http://www.htmleaf.com/Demo/201504191708.html 0 ...
- antv图例出现分页_2020,贴地飞行的 AntV 设计
前不久,一年一度的数据可视化产品 AntV 品牌发布日又来到,今年我们给大家带来了"贴地飞行"的 AntV 设计.为什么称之为"贴地飞行"?这一年中,AntV ...
- Mac OS使用技巧之九:Mission Control和DIY自己的Dashboard
一.Mission Control使用技巧 Mac OS X为我们提供了更加无缝和流畅的多桌面.应用管理和切换,Mission Control. 之前的教程里面也提到过.触摸板四指向上平移( ...
- [译]5 Mac OS X RSS Readers Worth Giving a Shot
5 Mac OS X RSS Readers Worth Giving a Shot Mac OS X 下5款值得关注的RSS 阅读工具 There was once a time when my f ...
- 照片损坏怎么办,怎么恢复受损照片
常见的照片格式有JPG.JPEG.ARW.CR2.CR3.DNG.NRW.RAF .GPR.NEF等,日常生活中很多设备都可以拍摄照片,从相机.手机到平板都可以拍摄照片,其中相机拍摄出的照片多以RAW ...
- 对大数据量Excel文件自动排版、转换成PDF用于印刷出版
excel排版大师 下载 http://pan.baidu.com/s/1eQnY0hW 2015.3. 目录 一.主要功能 2 二.系统需求 3 三.文件名要求 3 四.目录说明: 4 1.Exc ...
最新文章
- 面试题16: 数值的整数次方
- Spring常用注解总结
- mysql全局唯一id_Mysql实现全局唯一ID
- 『设计模式』设计模式--原型模式
- vue加载时闪现模板语法-处理方法
- C++输出字符变量地址
- PHP —— 识别运算符实现逻辑比较
- pagerTabStrip例子
- ccs软件5.5安装
- 微信小游戏开发指南(二)微信小游戏常见问题解答
- 开源音乐软件——落雪
- 俄亥俄州立大学计算机专业排名,俄亥俄州立大学计算机科学专业
- python日程表代码_【算法提高班】《我的日程安排表》系列
- PLSQL的快捷键以及使用技巧
- QLabel setText 标红 加粗
- 分支限界法与回溯法的横向比较
- mysql多次登录失败控制,Mysql登录失败多次锁定配置
- Google 文档 地址
- ZLIB 压缩的数据格式规范
- 校招 - 行业测评题、图形推理题、逻辑思维面试题,解题技巧汇总