在使用外部msl配置生成图片后,发现原有的配置方式,当大图处理小图时,没有问题。当传入的图片尺寸小于要格式化的尺寸时,由于配置文件不知道,会强制resize,将小图拉伸影响效果。
<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="test.jpg" />
<resize geometry="200x200" />
<write filename="test_200.jpg" />
</image>
如上示例,当test.jpg的尺寸大于200x200时,没有问题,会生成200x200的小图test_200.jpg。当时当test.jpg的尺寸小于200x200时,通过配置文件生成会强制拉伸到200x200的图片,而实际使用中一般当小于要处理的尺寸时,应该不处理。
查了imageMagick的convert -resize的说明有如下的内容:
-resize widthxheight{%} {@} {!} {<} {>} {^}
Use > to change the dimensions of the image only if its width or height exceeds the geometry specification. < resizes the image only if both of its dimensions are less than the geometry specification. For example, if you specify 640x480> and the image size is 256x256, the image size does not change. However, if the image is 512x512 or 1024x1024, it is resized to 480x480. Enclose the geometry specification in quotation marks to prevent the < or > from being interpreted by your shell as a file redirection.
大概意思就是说用了> < 号,对于实际的尺寸会有一些影响。
为了测试是否正确,就在cmd命令行下试验
convert -resize 200x200> test.jpg test_200.jpg
报错:convert: missing an image filename `test_200.jpg'.
奇怪让生成test_200.jpg,竟然报找不到文件。
通过多次的实验发现有可能是windows重定向>的问题。
实验:
convert -resize >200x200 test.jpg test_200.jpg
报错:convert: invalid argument for option `test.jpg': -resize.
包参数错误,但是看文件夹生成了200x200的一个文件,大小为空,说明windows重定向起了作用。
一时不知怎么解决,旁边的搭档提醒,在msl文件里直接加试一下(200x200>)
<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="test.jpg" />
<resize geometry="200x200>" />
<write filename="test_200.jpg" />
</image>
在配置文件的相应参数处加了处理符号,运行。
conjure test.msl
查看运行目录,一切正常,用尺寸小于200的文件测试,没有问题,一切正常。看来真是windows命令解析出了问题,用配置文件,可能自己内部处理,反而没有了问题。
分享到:
相关推荐
文档中列举了用ImageMagick命令行处理图片的例子
Version: ImageMagick 6.7.6-7 2012-04-20 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC Features: OpenMP Usage: convert.exe [options ...] file [ [options ......
ImageMagick是一个免费的创建、编辑、...ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。
ImageMagick是一个免费的创建、编辑、...ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。
使用 phantomjs 和 im4java 生成网页缩略图,切图用的是ImageMagick,附送im4java调用ImageMagick处理图片代码,包括剪切、调整大小、调整到指定比例大小不足部分补白边。包含 phantomjs 包,不包含ImageMagick。
Java图片处理工具ImageMagick
1、ImageMagick跨平台图片处理框架 2、ImageMagick已打包为iOS静态库 3、项目中如何导入ImageMagick框架 4、一句代码调用压缩函数,代码实例如下: [[WZMQualityHandle shareHandle] compressImage:path quality:0.5...
ImageMagick-7.0.8-56-Q16-x64-dll.rar是ImageMagick7.0.8的windows 64位操作系统的安装程序,解压执行即可安装。...ImageMagick利用多个计算线程来提高性能,并且可以读取,处理或写入兆,千兆或兆像素图像大小。
ImageMagick是一个免费的创建、编辑、...ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。
使用ImageMagick给图片在指定位置加文字,可以实现P图软件一样的效果。加上for循环语句,可以实现批量给图片加文字。 关于ImageMagick,是一款免费的命令行图像处理软件,支持windows,linux,Mac OS多平台,下载...
java结合imageMagick实现图片渲染合成编辑,源码附送安装文件学习文档。
图片处理程序ImageMagick,安装后可以解决python生成动态图表时报错找不到imagemagick
Java图片处理解决方案:ImageMagick快速入门教程.docx
因为im4java是基于imagemagick的commandline进行调用的java接口,不像 jmagick那样用java jni调用本地imagemagick的api那么复杂。其实安装imagemagick在任何平台都是一样的安装,在linux下面有rpm包,安装那个包,...
ImageMagick命令使用文档
图像处理工具可用来处理PDF文件时进行主要是图像处理!本人通过Python调用它进行PDF转换图片使用!工具地址:https://gitee.com/lmay/pdf_transform
ImageMagick图形处理工具 Java处理图片必须安装工具
ImageMagick是用于php开发图片使用的第三方插件,他提了很多的api接口,对文字有很好的处理包括渐变色、阴影效果、文字翻转、图像特殊效果,功能相当于mini版的ps
ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。...
NULL 博文链接:https://lfq618.iteye.com/blog/1967693