`

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 截屏截图

    在Java编程语言中,实现截屏截图功能是通过利用Java的AWT(Abstract Window Toolkit)和Swing库来完成的。这些库提供了丰富的图形用户界面(GUI)组件和功能,其中包括处理屏幕图像的能力。以下是对Java截屏截图的...

    屏幕抓图程序

    对于特定窗口的抓图,我们需要利用`java.awt.Window`类和`java.awt.Frame`类来定位并获取窗口的坐标。这通常涉及到查找顶层窗口,遍历所有子窗口,直到找到目标窗口。一旦找到,我们可以使用窗口的大小和位置信息来...

    Java边界布局管理器[归类].pdf

    1. **BorderLayout类**:这是Java AWT库中的一个布局管理器,用于将组件分配到指定的五个预定义区域。创建一个新的`BorderLayout`实例并将其设置为容器(通常是`Frame`)的布局管理器,可以使用`setLayout()`方法,...

    JAVA写的屏幕截图小程序

    #### Java AWT 和 Swing 库 Java 提供了强大的图形用户界面(GUI)开发工具包,其中包括 AWT (Abstract Window Toolkit) 和 Swing。这些库为开发者提供了丰富的类和接口来创建跨平台的图形用户界面,并且能够捕获...

Global site tag (gtag.js) - Google Analytics