小试ImageMagik——使用篇
=====================================================
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
小试ImageMagik——使用篇相关推荐
- 小试ImageMagik——开发篇
===================================================== ImageMagick的使用和开发的文章: 小试ImageMagik--使用篇 小试Imag ...
- ImageMagik——开发篇(转)
安装 我自己的系统是Windows的,因此从网站上下载安装包之后,一路"Next"就可以安装完毕.需要注意的地方是,如果想要使用ImageMagick进行开发,需要在安装的过程中勾 ...
- 一点就分享系列(实践篇3-上篇)— 修改YOLOV5 之”魔刀小试“+ Trick心得分享+V5精髓部分源码解读
一点就分享系列(实践篇3-上篇)-修改YOLOV5 魔刀小试+ Trick心得分享 DL部署大热,而我觉得回归原理和源码更加重要!正如去年,我也提倡部署工程化,眼争上班工作我这里也是以搬砖产出为主.但 ...
- 《深入浅出WPF》笔记——事件篇
如果对事件一点都不了解或者是模棱两可的话,建议先去看张子阳的委托与事件的文章(比较长,或许看完了,也忘记看这一篇了,没事,我会原谅你的)http://www.cnblogs.com/JimmyZhan ...
- windows phone (12) 小试自定义样式
windows phone (12) 小试自定义样式 原文:windows phone (12) 小试自定义样式 样式在BS开发中经常用到,在wp中系统也提供了解决办法,就是对设置的样式的一种资源共享 ...
- 腾讯广告算法大赛 | 这是一篇雪中送炭的赛题宝典
腾讯广告算法大赛初赛已经开战!你踏入战场了没?无论你是否已经小试了一把牛刀,都不要错过这篇来自出题人的第一手赛题详解,为你拨开迷雾,助你赢在起跑线上: ** 赛题背景:广告曝光预估如何应用在实际业务中 ...
- AJAX框架简笔画图片教程,jquery 框架使用教程 AJAX篇
jquery 框架使用教程 AJAX篇 更新时间:2009年10月11日 14:47:26 作者: 正好项目中准备使用thickbox,于是干脆抛弃prototype.js,看起jquery.js ...
- 一点就分享系列(实践篇3-中篇)— 虽迟但到!全网首发?yolov5之“baseline修改小结“+“CV领域展开-Involutiontransformercnn”
一点就分享系列(实践篇3-中篇)- yolov5之"修改总结以及baseline算子的分享" 说明 上篇有很多朋友照搬了我的yaml结构,这里抱歉下也有原因是我的工作偏工程,真的研 ...
- OpenCV特征点检测------Surf(特征点篇)
Surf(Speed Up Robust Feature) Surf算法的原理 ...
最新文章
- error while loading shared libraries: libz.so.1错误
- python的none是什么-python 判断变量是否是 None 的三种写法
- CentOS系统提示用户名不在sudoers文件中
- Windows 8 :妥协的产物
- Python:Sklearn概述
- My97DatePicker日历的平面显示,不是文本框点击事件后显示
- Fax Helper
- [LibreOJ β Round #4] 子集
- 在VS中查看MSI项目的Product Code
- CNTV获首张互联网电视牌照
- uni-app微信小程序配置(三)
- python编程求100以内能被5整除之和_打印1到100之间能被3和5同时整除的数,每行打印5个数用循环算出,这是属于c语言的类型...
- TableauとSFDCデータ整理
- 申请百度文字识别APIkey和Secret Key+文字验证码识别案例
- 眼见为实:关于微服务熔断这几个知识点,你可能理解错了
- 【天坑】BLAST比对序列时遭受的痛苦
- 关于pip下载很慢很慢
- 页目录和页表结构---醍醐灌顶
- jzoj5984. 【北大2019冬令营模拟2019.1.1】仙人掌 (分块)
- mysql 查询echar 折现数据
热门文章
- Bailian4115 鸣人和佐助【BFS】
- Go语言结构应用实例
- HDU1873 看病要排队【模拟+优先队列】
- 51Nod-1050 循环数组最大段和【最大子段和+最小子段和+DP】
- CCF NOI1019 分段函数
- 位图(bitmap)—— C语言实现
- pandas 下的 one hot encoder 及 pd.get_dummies() 与 sklearn.preprocessing 下的 OneHotEncoder 的区别
- IPython notebook(Jupyter Notebook) 的使用
- Python基础——positional argument vs keyword argument
- C++基础——bitset与string的相互转化