`
dcj3sjt126com
  • 浏览: 1885619 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用ImageMagick为你的网站减重

    博客分类:
  • IOS
 
阅读更多
Images as a percentage of page weight for the Alexa top 10 global web sites 
 
图片在网站所占的比重越来越重。更好的优化图片可以提高网站速度。减少宽带流量。 

1.对用户上传图片进行缩放 
    对于用户自己上传的图片不能简单的 用css限制大小,因为这样每次加载图片时候还是会加载整幅大图。占用多余的宽带,并且影响页面加载速度。应该根据实际显示需要进行缩放。比如我想要用户相册里的图片大小不能超过500x300: 
用ImageMagick处理起来很简单 
Im代码  收藏代码
  1. convert -resize "500x300>" input.jpg  output.jpg #如果图片比500x300小就保持原样,以防小图片被放大失真。  


2.生成不同比例缩略图 
    一般相册等应用,都会提供缩略图和预览图,这些缩略图同样不能简单的用css来限制大小,要为每个图片生成不同比例的预览图。 

3.去除多余信息 
    Exif信息是数码相机在拍摄过程中采集的一系列信息,这些信息放置在我们熟知的jpg文件的头部,也就是说Exif信息是镶嵌在JPEG图像文件格式内的一组拍摄参数,主要包括摄影时的光圈、快门、ISO、日期时间等各种与当时摄影条件相关的讯息,相机品牌型号,色彩编码,拍摄时录制的声音以及全球定位系统(GPS)等信息。简单的说,它就好像是傻瓜相机的日期打印功能一样,只不过Exif信息所记录的资讯更为详尽和完备。不过,具有Exif信息的JPEG图像文件要比普通的JPEG文件略大一点。还有就是像PS这种软件处理过的图片会有“program comments”。如果不是专业的摄影类网站,这些信息是没有用的,可以去掉: 
Im代码  收藏代码
  1. convert -strip input.jpg output.jpg  

4.调节压缩比 
    大多时候,我们的网站并不需要那么清晰的图片,适量调节JPG图片的压缩比会减少图片大小,肉眼并不会分辨出质量被压缩后的图片。通常75%是最佳比例。 
Im代码  收藏代码
  1. convert -quality 75% input.jpg output.jpg  


上面几个步骤可以一次搞定: 

Im代码  收藏代码
  1. convert -resize "500x300" -strip -quality 75% input.jpg output.jpg  


上面说的都是针对JPG格式的处理方式,下面说一下BMP,GIF,PNG等格式的处理。 

对于BMP直接转成JPG就可以了。再按照上面的方式处理。 

而GIF和PNG貌似有些特殊。GIF的一些特性(动画效果,透明等)是JPG没有的,可以根据实际情况选择转或不转,如果转换成jpg,取第一帧只需要这样: 
Im代码  收藏代码
  1. convert -format jpg input.gif input.jpg  


PNG也可以通过减少PNG图片color数量的办法达到压缩的目的。但是这种办法压缩出来的图像可以明显看出来失真,而且呈锯齿状。 

对于真实世界的PNG图片(通常指照片),一般先转换成JPG,再通过上面的办法来压缩。 

但是要注意一点,透明或半透明的PNG图片在转换成JPG时透明部分会变成黑色。。。建议做用户头像时候不要转成JPG。。很难看~~~ 
本人头像就是深受毒害。。 

关于图片扩展名 

发现大部分网站喜欢把用户上传的图片(头像,相册等)都统一转成特定格式(一般都是jpg)。这样做的潜在弊端就是在用像ImageMagick这样的软件处理的时候会根据扩展名做隐式格式转换。 
个人觉得在保存图片的时候不加扩展名处理起来更灵活一些。 

注:把上面的命令行用mini_magick改写用到rails里很容易的。mini_magick本质就调用系统命令行嘛~~ 

links: 
本文所说的都是对用户上传的图片处理,对网站自身的图片(header,banner等)处理《Even Faster Websites》一书第十章里面写的很详细了: 
http://www.graphics.com/modules.php?name=Sections&op=viewarticle&artid=756 

更多ImageMagick用法: 
http://www.imagemagick.org/script/index.php 

 

分享到:
评论

相关推荐

    在 Linux 中使用 ImageMagick 命令行操作图像文件.docx

    convert 命令将使用你提供的文件名来确定最终想要的文件类型并相应地修改图像。 如果怀疑转换是否有问题,可以随时使用 od 命令检查每个文件的开头: [root@localhost data]# od -bc penguins.jpg |head -60000000...

    ImageMagick7.0.8 win64 16安装包下载。使用moviepy抛ImageMagick异常问题解决

    使用ImageMagick的创建,编辑,撰写,或转换位图图像。它可以读取和写入各种格式(超过200种)的图像,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,Postscript,PDF和SVG。使用ImageMagick可以调整图像大小,...

    php中ImageMagick安装教程;ImageMagick安装包;ImageMagick安装注意事项;pdf转img

    ImageMagick安装包;ImageMagick安装注意事项;pdf转imgphp中ImageMagick安装教程;ImageMagick安装包;ImageMagick安装注意事项;pdf转imgphp中ImageMagick安装教程;ImageMagick安装包;ImageMagick安装注意事项;...

    Java图片处理解决方案:ImageMagick快速入门教程.docx

    在 Java 中使用 ImageMagick 需要先确认 JDK、Maven 正确安装,然后引入依赖 IM4Java 是 ImageMagick 的 Java API 包,它将 Java 代码转化成对 ImageMagick 的命令行调用。 IM4Java 的作用是将 Java 代码转成对 ...

    phpthumb使用ImageMagick来生成缩略图

    《使用ImageMagick通过phpthumb生成缩略图详解》 在网页开发中,生成缩略图是一项常见的需求,尤其在处理用户上传的图片或者构建图片展示平台时。PHP作为常用的服务器端脚本语言,有着丰富的图像处理库。本文将重点...

    Java图片处理工具ImageMagick

    ImageMagick是由C语言编写的,但通过Java的JNI(Java Native Interface)技术,可以无缝集成到Java环境中,为Java开发者提供了丰富的图像处理功能。 ImageMagick的核心功能包括: 1. 图像转换:可以将一种图像格式...

    WINDOWS下thinkphp5.0+php 7.0使用ImageMagick+Ghostscript把网页面内容转化为png图片

    如果你使用的是GD库,可以使用PHP的`imagepng()`函数来保存生成的图像。但考虑到需要处理HTML和PDF,更推荐使用Imagick扩展,它提供了对ImageMagick更全面的接口。在PHP 7.0中,你可以通过以下步骤安装Imagick扩展:...

    ImageMagick使用手册

    你可以从官方网站`http://www.imagemagick.org/script/index.php`获取最新版本的安装程序,例如`ImageMagick-6.2.6-8-Q16-windows-dll.exe`,安装完成后将安装路径添加到系统环境变量PATH中,这样可以在命令行中直接...

    linux下可用的静态ImageMagick C库

    总的来说,"linux下可用的静态ImageMagick C库"是一个为Linux开发人员准备的便捷工具,它简化了图像处理功能的集成,避免了依赖管理的复杂性,但仍需要开发者具备一定的C语言和ImageMagick API使用经验。

    ImageMagick使用手册-英文原版

    ### ImageMagick 使用手册知识点概览 #### 一、ImageMagick简介 ImageMagick是一款功能强大的开源软件工具集,用于创建、编辑或合成位图图像。它可以在图像上执行的操作包括转换颜色空间、应用模糊、锐化、噪点、...

    ImageMagick

    ImageMagick是一款强大的开源跨平台图像处理工具,它在IT领域中被广泛使用,尤其在网站开发、自动化脚本和图形设计中。这个工具能够读取、转换和写入多种图像格式,支持超过200种不同的图像文件类型,包括常见的JPEG...

    ImageMagick安装支持heic格式.docx

    本文将详细讲解如何在Windows和Linux环境下,通过Java使用ImageMagick库来支持和转换HEIC图片格式。 ImageMagick是一个开源的命令行工具集合,用于读取、转换和写入多种图像格式。在Linux系统中,为了使ImageMagick...

    64位Linux安装ImageMagick

    在64位Linux环境下安装ImageMagick,特别是与JMagick配合使用,是一个涉及多个步骤的过程,主要目的是为了实现Java应用程序对ImageMagick图像处理功能的调用。以下是详细的安装步骤和相关知识点: 1. **卸载旧版本*...

    ImageMagick-6.9.11-16.tar.gz ImageMagick图像软件下载

    在标题提到的版本“ImageMagick-6.9.11-16.tar.gz”中,我们看到的是一个压缩包文件,其格式为tar.gz,这是一种常见的Linux/Unix系统中的归档和压缩格式。 ImageMagick的主要功能包括但不限于以下几点: 1. 图像...

    python使用moviepy时需要用到的库imagemagick

    安装`imagemagick`通常可以通过访问其官方网站下载对应版本的安装包,例如提供的`ImageMagick-7.1.0-Q16`,这可能是适用于特定平台(如Windows、Linux或macOS)的版本。安装过程中,确保将`imagemagick`的可执行文件...

    ImageMagick-6.9.3-7-vc11-x64.zip

    如果你打算在PHP中使用ImageMagick,通常会通过PHP的Imagick扩展来调用这些底层功能。通过这个扩展,开发者可以在PHP脚本中方便地进行复杂的图像处理。 `lib`目录包含库文件,这些是ImageMagick的动态链接库(DLLs...

    ImageMagick-7.0.7-11-vc15-x64.zip

    1. **LICENSE**:这是ImageMagick的许可文件,它遵循Apache 2.0许可证,意味着你可以自由地使用、修改和分发该软件,但需遵守一定的条件,如保持原有版权信息。 2. **bin**:这个目录包含了ImageMagick的可执行文件...

    Imagemagick6.8.9-6.9.3

    较低版本的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

Global site tag (gtag.js) - Google Analytics