`

java.awt.Dimension 制作指定图片

阅读更多

在上传头像时,需要对图片进行剪切,而且要指定剪切的图片的大小,此时,我给大家推荐一个 API 。java.awt.Dimension。 不罗嗦了,我在此处只说明用法。

 

用法如下:

package com.transnal.web.utils;

import java.awt.Dimension;

import magick.ImageInfo;
import magick.MagickImage;

public class ImageUtil {
	static {   
        // 不能漏掉这个,不然jmagick.jar的路径找不到   
        System.setProperty("jmagick.systemclassloader", "no");   
    }   
	/**
	 * @param width
	 * @param height
	 * @param maxValue
	 * @return
	 */
	private static int[] getWidthHeight(int width, int height, int maxValue) {
		int nWidth = 0;
		int nHeight = 0;
		if (width < height) {
			nWidth = width * maxValue / height;
			nHeight = maxValue;
		} else if (width > height) {
			nHeight = height * maxValue / width;
			nWidth = maxValue;
		} else {
			nWidth = width * maxValue / height;
			nHeight = height * maxValue / width;
		}
		return new int[] { nWidth, nHeight };
	}

	/**
	 * 压缩图片
	 * 
	 * @param filePath
	 *            源文件路径
	 * @param toPath
	 *            缩略图路径
	 */
	public static void resetDimension(String filePath, String toPath, int maxValue) {
		ImageInfo info = null;
		MagickImage image = null;
		Dimension imageDim = null;
		MagickImage scaled = null;
		try {
			info = new ImageInfo(filePath);
			image = new MagickImage(info);
			imageDim = image.getDimension();
			int wideth = imageDim.width;
			int height = imageDim.height;
			int[] wh = getWidthHeight(wideth, height, maxValue);
			wideth = wh[0];
			height = wh[1];
			scaled = image.scaleImage(wideth, height);// 小图片文件的大小.
			scaled.setFileName(toPath);
			scaled.writeImage(info);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (scaled != null) {
				scaled.destroyImages();
			}
		}
	}

}

 

 

第二步:

	/**生产blog头像 尺寸65*65
	 * @return
	 */
	public void generateBlogGravatarPic(String picName)
	{
		
		// floderPath最终为:E:\cun\
		String folderPath = ResourceBundle.getBundle("sysConfig").getString(
				"userDirectory.path");

		// filePath最终为:E:\cun\当前用户名
		String filePath = this.createUserFolderInOS(userName, folderPath);
		
		// filePath最终为:E:\cun\当前用户名\gravatar\
		filePath = filePath + File.separator + "gravatar" + File.separator;
		
		String newFilePath = filePath + picName;
		
		ImageUtil.resetDimension(newFilePath, filePath+"blog_"+picName, 65);
	}

 

第三步: 安装API 包.见附件. (1): 将 jmagick.rar 解压后 将其 dll 文件 放入 c:/windows/system32 下.

                                         (2): 将 ImageMagick-6.3.9-0-Q8-windows-dll.rar 解压并安装。

             

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JAVA 程序 源代码 import java.applet.*;import java.awt.*

    import java.awt.*"表明这段源代码涉及了Java编程语言,特别是与Applet和图形用户界面(GUI)相关的部分。`import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体...

    Java的AWT包.pdf

    Java的Abstract Window Toolkit(AWT)包是Java标准版(Java SE)的一部分,它提供了一组基本的组件和接口,用于创建图形用户界面(GUI)。在Java编程中,如果你需要开发带有窗口、按钮、文本框等元素的应用程序,AWT就是...

    用Java.awt包中类写的记事本

    整合了java.awt.*;java.awt.event.*;javax.swing.*包中的类,结合布局与事件处理....这是本人自己写的哦

    java的.awt包和java.util包的区别

    ### Java的.awt包和.java.util包的区别 #### Java.util包详解 Java.util包是一个非常重要的标准库之一,其中包含了大量有用的类和接口,为开发者提供了丰富的功能。此包中的类和接口可以分为以下几大类别: 1. **...

    import java.awt.docx

    在我们的代码中,我们可以看到 import 语句中包含了 java.awt 和 javax.swing.*,这说明了我们使用的是 Java 的 AWT 和 Swing 工具包。 2. JFrame 和 JDialog 的使用 在我们的代码中,我们可以看到 MainWindow 类...

    导入库: javax.imageio.ImageIO:用于读取和保存图像 javax.swing:用于创建图形用户界面 java.awt:用于图像处理 java.awt.event:用于处理事

    java.awt.event:用于处理事件。 java.io:用于文件操作。 java.util.Random:用于生成高斯噪声。 创建主窗口: ImageProcessor 类继承自 JFrame,创建主窗口。 设置窗口标题、大小、默认关闭操作,并使其居中显示...

    Java-AWT

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了构建桌面应用程序的基本组件,如按钮、文本框、菜单等。在Java的早期版本中,AWT是GUI编程的主要框架,但现在已经...

    awt包java Android

    awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...

    JAVA_CH.rar_java awt chm_java.awt.geom chm

    `JAVA_完完全全的中文版.chm`文件应该是一个完整的中文Java教程或者API文档,覆盖了Java的各个方面,不仅限于AWT和`java.awt.geom`,还包括了Java的基础语法、集合框架、IO流、多线程、网络编程等内容。而`...

    JAVA API官方中文版手册chm文件文档

    java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event java.awt.font java.awt.geom java.awt.im java.awt.im.spi java.awt.image java.awt.image.renderable java.awt.print java.beans ...

    这是一个使用 Java 语言 ( java.awt + java.swing ) 实现的 2048 游戏程序.zip

    在这个项目中,开发者采用Java编程语言,结合java.awt和java.swing库,构建了一个可运行的2048游戏程序。下面我们将深入探讨这个项目的实现细节。 首先,java.awt和java.swing是Java GUI(图形用户界面)设计的主要...

    Java.awt实现的符合面向对象思想的贪吃蛇游戏.zip

    《基于Java.awt实现的面向对象贪吃蛇游戏详解》 贪吃蛇游戏,作为一个经典的编程实践项目,一直是初学者和专业开发者提升技能的好选择。本项目以Java.awt库为基础,充分体现了面向对象的设计思想,是Java后端开发的...

    jsb.zip_awt_event_import java.awt._java 记事本

    简单的记事本的JAVA程序,//导入awt包,event包 import java.awt.*

    阿基米德螺旋线java小实验

    import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentEvent; import java.awt.event....

    Javaweb仓库管理系统项目源码+数据库.zip

    import java.awt.AlphaComposite; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt....

    Java Socket 操作 Demo

    import java.awt.Dimension; import java.awt.Point; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io....

    项目源码-java进销存管理系统

    import java.awt.BorderLayout; import java.awt.Color; import java.awt.Image; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ComponentAdapter; ...

Global site tag (gtag.js) - Google Analytics