`

使用mogrify 转化图片格式为RGB

阅读更多

mogrify 下载地址:http://www.imagemagick.org/script/binary-releases.php#windows

cmd执行结果:

 mogrify -colorspace RGB -quality 100 "D:\software\eclipse\workspace2\demo_channel_terminal\src\main\resources\mini.jpg"

说明:最后一个参数是要转化的图片全路径.

 

那么如何使用java 来调用呢?

测试代码:

@Test
	    public void test02()
	    {
	        Process p = null;
	        String []command = null;

	        command = new String[]{"cmd"," /c ","mogrify.exe" ,"-colorspace", "RGB", "-quality" ,"100" ,"\"D:\\software\\eclipse\\workspace2\\demo_channel_terminal\\src\\main\\resources\\mini.jpg\""};//cmd /c is needed
	        BufferedReader reader = null;
	        try
	        {
	            p = Runtime.getRuntime().exec(command, null);//)
	            reader = new BufferedReader(new InputStreamReader(p
	                    .getErrorStream(),"gbk"));
	            StringBuilder sb = new StringBuilder();
	            String readedLine = null;
	            try
	            {
	                while ((readedLine = reader.readLine()) != null)
	                {
	                    sb.append(readedLine);
	                    sb.append("\r\n");
	                }
	            }
	            catch (IOException e)
	            {
	                e.printStackTrace();
	            }
	            finally
	            {
	                try
	                {
	                    reader.close();
	                    p.destroy();
	                }
	                catch (IOException e)
	                {
	                    e.printStackTrace();
	                }
	            }
	            String content = sb.toString();
	            System.out.println(content);
	        }
	        catch (IOException e)
	        {
	            e.printStackTrace();
	        }

	    }

 执行报错:

 'mogrify.exe' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

但是我在命令行里面执行没有问题呀!!!

为什么命令行里面没问题,java调用就有问题呢?

最后找到了原因:java执行本地命令时要指定命令(exe文件)所在路径

String commandFolder="D:\\Program Files\\ImageMagick-6.8.9-Q16\\";

           p = Runtime.getRuntime().exec(command, null,new File(commandFolder/*命令的所在目录*/));//)

           reader = new BufferedReader(new InputStreamReader(p

                   .getErrorStream(),"gbk"));

 

正确的代码如下:

@Test
	    public void test02()
	    {
	        Process p = null;
	        String []command = null;
//	        command = new String[]{"cmd"," /c ","dir"};//cmd /c is needed
	        command = new String[]{"cmd"," /c ","mogrify.exe" ,"-colorspace", "RGB", "-quality" ,"100" ,"\"D:\\software\\eclipse\\workspace2\\demo_channel_terminal\\src\\main\\resources\\mini.jpg\""};//cmd /c is needed
	        BufferedReader reader = null;
	        try
	        {
	        	String commandFolder="D:\\Program Files\\ImageMagick-6.8.9-Q16\\";
	            p = Runtime.getRuntime().exec(command, null,new File(commandFolder/*命令的所在目录*/));//)
	            reader = new BufferedReader(new InputStreamReader(p
	                    .getErrorStream(),"gbk"));
	            StringBuilder sb = new StringBuilder();
	            String readedLine = null;
	            try
	            {
	                while ((readedLine = reader.readLine()) != null)
	                {
	                    sb.append(readedLine);
	                    sb.append("\r\n");
	                }
	            }
	            catch (IOException e)
	            {
	                e.printStackTrace();
	            }
	            finally
	            {
	                try
	                {
	                    reader.close();
	                    p.destroy();
	                }
	                catch (IOException e)
	                {
	                    e.printStackTrace();
	                }
	            }
	            String content = sb.toString();
	            System.out.println(content);
	        }
	        catch (IOException e)
	        {
	            e.printStackTrace();
	        }

	    }

  mogrify网盘下载地址:http://pan.baidu.com/s/1i3vHPOh

安装完成之后目录情况:

 

参考:http://iaiai.iteye.com/blog/1461370

注意:

(1)java 执行dir或ipconfig的命令不需要执行命令所在目录,但是执行用户安装上的exe就必须执行命令所在目录;

(2)java执行操作系统命令时一定要加上"cmd  /c"

  • 大小: 23.7 KB
  • 大小: 13.7 KB
  • 大小: 48.6 KB
1
0
分享到:
评论
3 楼 hw1287789687 2014-12-30  
D:\software\bin>"D:\Program Files\ImageMagick-6.8.9-Q16w\mogrify.exe" -colorspac
e RGB -quality 80 "D:\picture\scan\IMG_20141230_0008.jpg"

相关推荐

    Python库 | mogrify-0.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:mogrify-0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    ImageMagick

    通过Image Magick/mogrify/GIMP/exiftool等工具来"convert"或"mogrify"图片,删除png图片中内嵌的iCCP profile sRGB: Image Magick使用举例: 删除单个png文件内的profile: % convert -strip <input filename> ...

    Perl-Mogrify:使用插件系统将Perl5代码转换为Perl6

    由于原始的Perl :: Critic模块仍然保留在幕后,因此您仍然应该能够使用原始配置和.rc系统。 通过获取一个现有的perl5文件并对其进行编辑,直到在Perl6下干净地进行编译,才可以轻松选择核心转换。 作者不保证该...

    grunt-mogrify:用于替换和转换文本的繁重任务,主要用于源代码

    咕噜咕噜 用于替换和转换文本的繁重任务,主要用于源代码。

    LR摄影边框插件

    Lightroom摄影后期插件,让边框更容易实现。

    LRMogrify2.lrplugin.5.10.zip

    Light room导出照片插件。LrMogrify可以直接在LR里给PP加边框、水印、文字。直接一站式处理了,不需要另外找Photoshop或者别的什么了。 启动LR,点击“文件”菜单中的“增效工具管理器”。在弹出对话框中点击...

    Transmogrify for Plex-crx插件

    为Plex的Plex / Web 2.0客户端添加了几个功能 Transmogrify for Plex为Plex的Plex / Web 2.0客户端增加了一些功能。 每个功能都可以通过设置页面单独启用或禁用。 这些当前包括:-添加链接以在Plex / Web中查看电影...

    Jhead (Exif 信息批量命令行编辑工具,win命令行,含源代码)一个直接用命令查看修改删除图片属性Exif信息的文件

    跟所有的命令行工具一样,它的使用方法为:jhead参数列表jpg文件列表 比如: jhead-se1jpg处理单个文件 jhead-se2009_[0-9]jpg处理指定的多个文件 jhead-se*jpg处理所有文件 另外,你甚至可以用**通配符来代替子目录...

    arisgarden:电子食谱

    可以使用ImageMagick's mogrify命令将图像序列转换为gif: mogrify -resize 400 * .JPG convert -delay 5 -loop 0 * .JPG output.gif 有关添加新页面的注意事项。 添加新的(有状态的)页面时,您必须进行一些更改

    simple_magick:超级超简单的 ImageMagick 包装器

    要求 ImageMagick(使用 mogrify 命令) % brew install imagemagick 安装 将此行添加到应用程序的 Gemfile 中: gem 'simple_magick' 然后执行: $ bundle 支持的版本 Ruby 2.0.0 或更高版本 用法 require ...

    LilyBot:一个使用Lilypond的Discord机器人可以即时播放和渲染音乐片段!

    或者,如果您想在测试模式下运行(默认情况下使用替代的bot触发器,并具有更多的调试输出),请执行以下操作: node lilybot.js test 配置 如果您想根据自己的喜好配置机器人,请编辑config.js 。

    image_sorcery, ruby 图像/图形魔法库 便笺.zip

    image_sorcery, ruby 图像/图形魔法库 便笺 镜像魔法允许你利用所有的imagemagick工具,mogrify,转换,以及识别,以最大限度地提高magickal功耗和最小内存消耗 ! 即使是你也可以使用 GraphicsMagick,如果这是你的...

    补水:补水播客的来源

    请放下新的音频文件,填写新的Markdown文件,然后运行: make buildmake pushall发展进行更改之后并提交之前: 如果您在编辑代码时尚未将编辑器配置为更漂亮地运行,请运行make prettier来格式化代码。 如果尚未安装...

    matlab代码中fnames-flippingmatisse:翻转马蒂斯

    然后,使用以下命令裁剪并转换为灰度(需要ImageMagick)- mkdir data/matisse_grey/ cd data/matisse/ mogrify -format png -resize 1836x1536 -colorspace gray -crop 1024x1024+406+256 -define png:bit-depth=8 ...

    minimagick:RMagick的迷你替代品

    使用MiniMagick,ruby进程的内存仍然很小(它生成了ImageMagick的命令行程序mogrify,该程序也占用了一些内存,但是比RMagick小得多)。 请参阅正在 以下。 MiniMagick使您可以访问ImageMagick拥有的所有命令行...

    printsave:同时打印和保存 MATLAB 图形-matlab开发

    如果图形包含类型为“图像”的图形元素, 首次打印时使用 PNG 格式,ImageMagick 然后调用工具“mogrify”将文件转换为 eps 和 pdf。 printsave(f,basename) 使用 f 作为图形句柄而不是 gcf。

    TemporalMaskEditor:用于编辑应用于短影片剪辑的时间蒙版的工具

    使用来自 Graffiti Research Lab 的项目的画笔代码和画笔 PNG。 从源影片剪辑中提取帧。 ffmpeg -ss 0:00:00 -i "input.mov" -t 10 -f image2 out/framed.png 将帧大小调整为 640x480。 mogrify -path ./ -...

    el_finder:Ruby gem为elFinder提供服务器端连接器(用于Web的开源文件管理器)

    elFinder是用于Web的开源文件管理器,使用jQuery UI用JavaScript编写。 关于2.x API的注意事项: 8个月前,我说过:仅供参考,我正在研究纯2.x API实现。 目前还没有发布任何东西,假期即将来临,但他们想“把话说...

    subexec:Subexec 生成 n 个具有可选超时的子进程

    例如,使用 ImageMagick 的 mogrify 命令调整图像大小有时会停止并且永远不会将控制权返回给原始进程。 输入 Subexec。 经 MRI 1.9.3、1.9.2、1.8.7 测试 注意:Process.spawn 似乎被 JRuby 1.7.0.dev 破坏了...

    conworkshop:ConWorkShop:conlangsconworlds管理系统和社区

    网上商店 ConWorkShop或CWS是一种构建的语言,并且是构建的世界管理和工具Web应用程序。 ... 一旦完成大量工作,用Ruby制作的该版本将替换它... 注意:从技术上讲,您可以使用PostgreSQL以外的任何数据库,但是我们使用Po

Global site tag (gtag.js) - Google Analytics