文档章节

小试ImageMagik——使用篇

雷霄骅
 雷霄骅
发布于 2014/08/16 13:55
字数 1131
阅读 51
收藏 0

ImageMagick的使用和开发的文章:

小试ImageMagik——使用篇

小试ImageMagik——开发篇

======================

前两天帮同学调了一个小程序,是有关ImageMagik的。ImageMagik之前早有耳闻,据说处理图片的功能很强大,几乎都能把PhotoShop给替代了,但是一直没有机会尝试。于是顺便尝试了一下,记录一下它的使用方法和开发方法。

 

首先记录一下它的简介,是从百度百科上看到的:

ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、PNG等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。

 

主页:http://www.imagemagick.org/

 

安装

我自己的系统是Windows的,因此从网站上下载安装包之后,一路“Next”就可以安装完毕。需要注意的地方是,如果想要使用ImageMagick进行开发,需要在安装的过程中勾选“Install development headers and libraries for C and C++”


安装完成后,目录如下图所示:


介绍其中几个重要的文件:

Lib文件夹:开发需要使用的静态库文件。包含4个库(前3个分别对应3种接口):

CORE_RL_magick_.lib; CORE_RL_Magick++_.lib;CORE_RL_wand_.lib; X11.lib;

 

Include文件夹:开发需要使用的头文件。包含3个文件夹(分别对应3种接口):

magick; Magick++; wand;


*.dll:开发和使用过程中需要使用的动态链接库文件。

 

*.exe:各种工具,以命令行工具为主。只有一个工具是图形界面的——imdisplay.exe,是个图片浏览器。

 

使用

在这里简单介绍一下自己使用过的几个程序。

convert.exe

转换图像格式和大小,模糊,裁剪,驱除污点,图片上画图片,加入新图片,生成缩略图等。

identify.exe

描述一个或多个图像文件的格式和特性。

mogrify.exe

按规定尺寸制作一个图像,模糊,裁剪等。改写最初的图像文件然后写成一个不同的图像文件。

composite.exe

根据多个图片组合生成图片。

montage.exe

创建一些分开的缩略图像。可以给这些缩略图像添加修饰,比如边框、图片名称等。

compare.exe

在算术上和视觉上评估原始图片和处理后的图片。

 

convert.exe使用示例

 

转换JPEG格式图像到PNG格式图像

convert rose.jpg rose.png


转换JPEG格式图像到PNG格式图像,并缩小至原图片的50%

convert rose.jpg -resize 50% rose.png


可以使用很复杂的命令,例如

convert -size 320x85 canvas:none-font Bookman-DemiItalic -pointsize 72 \
-draw "text 25,60 'Magick'"-channel RGBA -blur 0x6 -fill darkred -stroke magenta \
-draw "text 20,55 'Magick'"fuzzy-magick.png


identify.exe使用示例

查看文件格式(简单)

identify rose.jpg

输出:

rose.jpg JPEG 640x480 sRGB 87kb0.050u 0:01

查看文件格式(详细)

identify -verbose rose.jpg

输出:

Image: rose.jpg
Format: JPEG (Joint PhotographicExperts Group JFIF format)
Class: DirectClass
Geometry: 70x46+0+0
Resolution: 72x72
Print size: 0.972222x0.638889
Units: PixelsPerInch
Type: TrueColor
Endianess: Undefined
Colorspace: RGB
Depth: 8-bit
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Channel statistics:
red:
min: 37 (0.145098)
max: 255 (1)
mean: 145.58 (0.5709)
standard deviation: 67.3195(0.263998)
green:
min: 31 (0.121569)
max: 255 (1)
mean: 89.2512 (0.350005)
standard deviation: 52.0488(0.204113)
blue:
min: 17 (0.0666667)
max: 255 (1)
mean: 80.4075 (0.315323)
standard deviation: 54.0052(0.211785)
Rendering intent: Undefined
Interlace: None
Background color: white
Border color: rgb(223,223,223)
Matte color: grey74
Transparent color: black
Page geometry: 70x46+0+0
Dispose: Undefined
Iterations: 0
Compression: JPEG
Quality: 100
Orientation: Undefined
Properties:
date:create:2008-01-08T11:08:52-05:00
date:modify:2005-04-07T12:48:13-04:00
jpeg:colorspace: 2
jpeg:sampling-factor: 2x2,1x1,1x1
signature: dcd00d6303f80f4fa53f991804cb026151c1e851b7a96255e82da87299583ebc
Artifacts:
verbose: true
Tainted: False
Filesize: 3.97266kb
Number pixels: 3.14453kb
Version: ImageMagick 6.8.9-12014-04-11 Q16 http://www.imagemagick.org


mogrify.exe

调整图像的尺寸至原来的50%

mogrify -resize 50% rose.jpg

将文件夹下所有JPEG的最大尺寸调整为256x256

mogrify -resize 256x256 *.jpg


composite.exe

将smile.gif叠加到rose-over.png上

composite -gravity center smile.gifrose: rose-over.png

montage.exe

将两张图片简单合成为一张图片

montage -background #336699 -geometry+4+4 rose.jpg red-ball.png montage.jpg

在每张图像周围加一些装饰

montage -label %f -frame 5-background #336699 -geometry +4+4 rose.jpg red-ball.png frame.jpg


compare.exe

比较两张图片的不同

compare rose.jpg reconstruct.jpgdifference.png


查看两张图片中红色通道的PSNR

compare -channel red -metric PSNRrose.jpg reconstruct.jpg difference.png


查看两张图片的PSNR

compare -metric PSNR rose.jpgreconstruct.jpg difference.png


 

 

本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/26633219

雷霄骅

雷霄骅

粉丝 213
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
加载中

评论(0)

小试ImageMagik——使用篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leixiaohua1020/article/details/26633219 ===================================================== ImageMag......

雷霄骅
2014/05/23
0
0
小试ImageMagik——开发篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leixiaohua1020/article/details/26754089 ===================================================== ImageMag......

雷霄骅
2014/05/24
0
0
四川省地图(SVG)——DIY

在原来的公司,当时做一个省的地图,然后标注各地区的使用情况, 当时我用的百度地图做的呵呵,当然用户性一点都不好,一直想自己做过,然而在网上找只有全国的,如 这样的很多,今天小试了一...

tngou
2013/03/15
910
0
钛极OS(TiJOS)物联网操作系统之小试牛刀(2)——超声波测距

钛极OS(TiJOS)物联网操作系统之小试牛刀(2)——超声波测距 作者:crashMaker 说明 开发环境的搭建以及应用工程的创建方法在这里不再赘述,可参考笔者文章《钛极OS(TiJOS)物联网操作系统之初体...

crashMaker
2017/11/30
0
0
ES(elasticsearch)搜索引擎

ES(elasticsearch)搜索引擎 0、授人以渔,少走半年弯路! 死磕 Elasticsearch 方法论:普通程序员高效精进的 10 大狠招! 一、Elasitcsearch基础篇 1.1 Elasitcsearch基础认知 1、Elasticse...

Ocean_K
2018/09/11
3.9K
6

没有更多内容

加载失败,请刷新页面

加载更多

类和对象

创建对象的几种方式: 1:new创建对象。会增加对象之间的耦合度。不推荐使用。 2:使用反射机制创建对象。Class类的newInstance方法,或者使用Constructor类的newInstance方法。 3:使用对象...

学啥子算法
昨天
59
0
你真的会创建一个线程吗?

在文章开始之前先看一个问题,下图几种创建线程方式分别是什么,它们之间的区别和联系是什么? 如果可以轻松回答,那么本文对你来说过于基础,不用往下看啦,如果还有所迷惑,那就和Nauyus一...

JAVA一方
昨天
58
0
【已解决】SQL SERVER2008 连接不了本地数据引擎

问题:【已解决】SQL SERVER2008 连接不了本地数据引擎 不知道你有没有遇到过这种情况,当装完 sql server2008之后,然后用 *SQL Server身份验证* 或者 *window身份验证* 访问本地数据库的时...

wanguanrong
昨天
63
0
StringTokenizer类

StringTokenizer类:根据自定义字符为分界符进行拆分,并将结果进行封装提供对应方法进行遍历取值,StringTokenizer方法不区分标识符、数和带引号的字符串,它也不识别并跳过注释;该方法用途...

lianbang_W
昨天
33
0
自媒体爆文抓取工具有哪些?分享3款爆文工具!

做自媒体运营每天都要持续的创作内容进行输出,这是非常头疼的,不是每一天都会有灵感,有时候就算看再多的素材也没法激发灵感。这时候就需要借助一些同领域做得比较的内容做参考。那么快速地...

易撰自媒体工具
昨天
62
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部