`

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包中类写的记事本

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

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

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

    Java的AWT包.pdf

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

    import java.awt.docx

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

    JAVA_CH.rar_java awt chm_java.awt.geom chm

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

    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 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; ...

    JSP随机验证图片如何制作

    小编整理了一篇关于模仿腾讯随机验证图片的文章。下面直接上代码吧!一个Java 类和一个JSP 页面。 Java类代码: 以下是JSP模仿腾讯随机验证图片引用片段: package icewee.image;...import java.awt.image.BufferedIm

    Matlab_JavaAWTRobot​_Project.m:MATLAB 中的 java.awt.Robot 类-matlab开发

    该程序显示了 MATLAB.Mouse 中 java.awt.Robot 类的用法,随机改变屏幕上的位置,并同时为您提供鼠标所在的 rgb 值。 为了运行 Matlab_JavaAWRobot_Project.m 你必须下载我提交的 getRobotClass.m 和 JavaRobotClass...

Global site tag (gtag.js) - Google Analytics