`
luyi122333
  • 浏览: 8262 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java jmagick实现图片完美缩放(命令版)

阅读更多
操作系统:winXP
软件下载地址:http://downloads.jmagick.org/
用的是6.3.9
下载ImageMagick-6.3.9-0-Q8-windows-dll.exe和jmagick-win-6.3.9-Q8.zip
安装ImageMagick-6.3.9-0-Q8-windows-dll.exe,按照网上说法把安装后根目录下的所有.dll文件拷贝到C:\WINDOWS\system32下。不过没拷贝成功。略之不理。
jmagick-win-6.3.9-Q8.zip解压缩。将里面的jmagick.dll拷贝至C:\WINDOWS\system32下最好JAVAHOME/bin下也放一份。
配置环境变量path加入C:\Program Files\ImageMagick-6.3.9-Q8(自己视情况在而变)
将jmagick-win-6.3.9-Q8.zip里jmagick.jar放入自己的工程
这里用的是java调用命令操作。
程序例子代码:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

public class Aa {
	public static String CONVERT_PROG = "C:\\Program Files\\ImageMagick-6.3.9-Q8\\convert.exe";//视情况而变
		
	public static void main(String[] args) {
		File in = new File("C:\\1.gif");//源文件
		File out = new File("C:\\2.gif");//输出文件
		convert(in,out,300,100,100,10);
	}
	

	/*
	 * Uses a Runtime.exec()to use imagemagick to perform the given conversion
	 * operation. Returns true on success, false on failure. Does not check if
	 * either file exists.
	 * 
	 * @param in Description of the Parameter @param out Description of the
	 * Parameter @param newSize Description of the Parameter @param quality
	 * Description of the Parameter @return Description of the Return Value
	 */
	@SuppressWarnings("unchecked")
	private static boolean convert(File in, File out, int width, int height,
			int quality,int newSize) {
		System.out.println("convert(" + in.getPath() + ", " + out.getPath()
				+ ", " + newSize + ", " + quality);

		if (quality < 0 || quality > 100) {
			quality = 75;
		}

		ArrayList command = new ArrayList(10);

		// note: CONVERT_PROG is a class variable that stores the location of
		// ImageMagick's convert command
		// it might be something like "/usr/local/magick/bin/convert" or
		// something else, depending on where you installed it.
		command.add(CONVERT_PROG);
		command.add("-geometry");
		command.add(width + "x" + height);
		command.add("-quality");
		command.add("" + quality);
		command.add(in.getAbsolutePath());
		command.add(out.getAbsolutePath());

		System.out.println(command);

		return exec((String[]) command.toArray(new String[1]));
	}

	/**
	 * Tries to exec the command, waits for it to finsih, logs errors if exit
	 * status is nonzero, and returns true if exit status is 0 (success).
	 * 
	 * @param command
	 *            Description of the Parameter
	 * @return Description of the Return Value
	 */
	private static boolean exec(String[] command) {
		Process proc;

		try {
			// System.out.println("Trying to execute command " +
			// Arrays.asList(command));
			proc = Runtime.getRuntime().exec(command);
		} catch (IOException e) {
			System.out
					.println("IOException while trying to execute " + command);
			return false;
		}

		// System.out.println("Got process object, waiting to return.");

		int exitStatus;

		while (true) {
			try {
				exitStatus = proc.waitFor();
				break;
			} catch (java.lang.InterruptedException e) {
				System.out.println("Interrupted: Ignoring and waiting");
			}
		}
		if (exitStatus != 0) {
			System.out.println("Error executing command: " + exitStatus);
		}
		return (exitStatus == 0);
	}

}
分享到:
评论
2 楼 jianwwpro 2013-08-09  
真逗,从头到尾没有jmagick的事。
1 楼 chengkun 2012-04-23  
           

相关推荐

    Jmagick缩图 JAVA图片处理

    JMagick通过提供便捷的API调用来实现这一目标,使得开发人员能够快速地对大量图片进行缩放处理,生成一致的、高质量的缩略图。 使用JMagick进行缩图生成的步骤通常包括以下几个方面: 1. **初始化JMagick**:首先...

    JMagick图片处理

    **JMagick图片处理**是图像操作的重要工具,它是一个Java接口,用于ImageMagick库,使得在Java环境中可以方便地进行图像处理。这个技术涵盖了多个关键知识点,包括创建缩略图、添加水印、切图以及压缩图片,这些都是...

    Jmagick32位的和Jmagick64位的Jmagick.dll,Jmagick.jar

    Jmagick广泛应用于图像的转换、裁剪、缩放、颜色调整、合成等多种操作。例如,一个Web应用可能使用Jmagick来动态生成缩略图,或者在上传图片时进行预处理,以确保符合规定的尺寸和格式。 总的来说,Jmagick提供了...

    java高清处理图片

    传统的Java库虽然能够实现这些功能,但往往在图片质量方面不尽如人意,尤其是当图片尺寸被大幅度压缩时,画质下降明显,难以满足高清展示的需求。为了解决这一问题,本篇将详细介绍如何使用ImageMagick及其Java接口...

    用jmagick实现cmyk图片转rgb

    内容:【ImageMagick-6.3.9-0-Q16-windows-dll.exe安装文件】【jmagick-win-6.3.9-Q16内有jar包和dll文件】【java代码示例】 用法: 1、先安装ImageMagick,重启电脑。 2、将jmagick.dll文件拷贝到JAVA_HOME\bin目录...

    jmagick-win-5.5.7-Q8.zip

    总的来说,JMagick结合ImageMagick,为Java开发者提供了一个强大的图像处理工具,使得开发者无需关注底层实现,只需编写简单的Java代码即可实现复杂的图像操作。了解和掌握JMagick的使用,对于提升Java应用程序的...

    jmagick 例子

    以下是一个简单的JMagick实现图片放缩的示例: ```java import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Pointer; import org.jmagick.ImageInfo; import org.jmagick.MagickException...

    jmagick图片处理

    jmagick处理图片,图片高质量压缩,图片加水印。

    jmagick.jar java图像应用

    jmagick.jar java图像应用

    jmagick安装和配置

    JMagick是一款强大的Java接口,它允许Java应用程序与ImageMagick图像处理库进行交互,从而实现丰富的图像操作功能。本文将详细介绍如何在Java环境中安装和配置JMagick,以及如何使用提供的示例进行测试。 ### 1. ...

    jmagick-win-6.3.9-Q16

    `jmagick.dll`是一个动态链接库(Dynamic Link Library),它是JMagick在Windows系统中的实现,负责与Java虚拟机交互,执行底层的图像处理任务。而`jmagick.jar`则包含了JMagick的Java类库,提供了Java开发者所需的...

    jmagick jmagick.jar jmagick资料

    里面包括jmagick 所需所有文件,jmagick.dll,jmagick.jar 还有安装文件, 以及linux安装说明! jmagick jmagick.jar jmagick资料 jmagick缩略图 jmagick jmagick.jar jmagick资料 jmagick缩略图

    jmagick.jar 用法

    3. **处理图像**:JMagick 提供了一系列方法来进行图像处理,如缩放、旋转、裁剪等。例如,`resizeImage()` 方法用于调整图像大小,`rotateImage()` 方法用于旋转图像,`cropImage()` 方法用于裁剪图像。 4. **保存...

    jmagick6.4.0

    总结来说,JMagick 6.4.0为Java开发者提供了一套全面的图像处理工具,使得在Java应用程序中实现图像操作变得简单而高效。无论是简单的格式转换还是复杂的图像算法,它都能以一种自然的方式融入到Java编程中。

    ImageMagick安装配置forjava项目(使用jmagick)最新版本

    本文旨在为Java项目中使用jmagick库的ImageMagick安装与配置提供指南。ImageMagick是一款用C语言编写的图像处理工具,它支持对图像进行缩放、旋转、锐化、色彩调整以及特效添加等多种操作。用户既可以通过命令行界面...

    java 水印(水印适应图片大小,但个别图片太小不支持)

    要实现在Java中添加水印,我们可以利用开源的图像处理库,如Apache Commons Imaging(原名:Sanselan)、ImageMagick的Java绑定(JMagick)或Java Advanced Imaging (JAI)。这里以Apache Commons Imaging为例,因为...

    jmagick.zip

    然而,需要注意的是,虽然JMagick提供了Java接口,但底层仍然是C++实现,因此在使用过程中可能需要关注性能和内存管理问题。 总的来说,JMagick与ImageMagick是Java开发者在进行图像处理时的强大工具,它们能够满足...

    jmagick-win-6.3.9

    JMagick,一个与标题“jmagick-win-6.3.9”相对应的工具,是Java平台上的一个强大扩展,它为Java开发者提供了一个方便的接口来操作ImageMagick库,从而实现高效的图像处理功能。本文将深入探讨JMagick的特性和应用...

    java版头像上传缩放裁剪功能 源码

    2. **图像处理库**:处理图像(包括缩放和裁剪)通常需要用到图像处理库,例如Java的`java.awt.image`包,或更高级的库如ImageMagick的Java绑定(JMagick)、OpenCV或Java Advanced Imaging (JAI)。在这个案例中,...

    java web 图片压缩

    这个项目的核心是通过Java实现图片的压缩和缩放功能,结合批量处理能力,能够有效地服务于各种Java Web应用中的图片管理需求。开发者可以根据实际场景,灵活调整处理策略,实现高效、稳定、安全的图片服务。

Global site tag (gtag.js) - Google Analytics