Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.pentahohub.nexus.util;
  
  import java.awt.Color;
  import java.awt.Graphics;
  import java.awt.Image;
 import java.io.File;
 
 
图像缩放工具类

Author(s):
LUOXC
 
 public class ImageZoomUtils {

放大图像

Parameters:
in 源图像文件地址
out 放大后的图像地址
scale 放大比例
Throws:
java.io.IOException
 
 	public final static void zoomIn(File inFile outint scalethrows IOException {
 		zoom(inoutscaletrue);
 	}

放大图像

Parameters:
in 源图像
out 放大后的图像
scale 放大比例
Throws:
java.io.IOException
 
 	public final static void zoomIn(InputStream inOutputStream outint scalethrows IOException {
 		zoom(inoutscaletrue);
 	}

缩小图像

Parameters:
in 源图像文件地址
out 缩小后的图像地址
scale 缩小比例
Throws:
java.io.IOException
 
 	public final static void zoomOut(File inFile outint scalethrows IOException {
 		zoom(inoutscalefalse);
 	}

缩小图像

Parameters:
in 源图像
out 缩小后的图像
scale 缩小比例
Throws:
java.io.IOException
 
 	public final static void zoomOut(InputStream inOutputStream outint scalethrows IOException {
 		zoom(inoutscalefalse);
 	}

缩放图像(按比例缩放)

 
 	private final static void zoom(File inFile outint scaleboolean zoomInthrows IOException {
 		zoom(new FileInputStream(in), new FileOutputStream(out), scalezoomIn);
 	}

缩放图像(按比例缩放)

	private final static void zoom(InputStream inOutputStream outint scaleboolean zoomInthrows IOException {
		BufferedImage src = ImageIO.read(in);
		int width = src.getWidth();
		int height = src.getHeight();
		if (zoomIn) {
			width = width * scale;
			height = height * scale;
else {
			width = width / scale;
			height = height / scale;
		}
		Image image = src.getScaledInstance(widthheight.);
		BufferedImage tag = new BufferedImage(widthheight.);
		Graphics g = tag.getGraphics();
		g.drawImage(image, 0, 0, null);
		ImageIO.write(tag.out);
	}

缩放图像(按高度和宽度缩放)

Parameters:
in 源图像文件地址
out 缩放后的图像地址
width 缩放后的宽度
height 缩放后的高度
Throws:
java.io.IOException
	public final static void zoom(File inFile outint widthint heightthrows IOException {
		zoom(inoutwidthheightfalse);
	}

缩放图像(按高度和宽度缩放)

Parameters:
in 源图像
out 缩放后的图像
width 缩放后的宽度
height 缩放后的高度
Throws:
java.io.IOException
	public final static void zoom(InputStream inOutputStream outint widthint heightthrows IOException {
		zoom(inoutwidthheightfalse);
	}

缩放图像(按高度和宽度缩放)

Parameters:
in 源图像文件地址
out 缩放后的图像地址
width 缩放后的宽度
height 缩放后的高度
isFillWithWhite 比例不对时是否需要补白:true为补白; false为不补白;
Throws:
java.io.IOException
	public final static void zoom(File inFile outint widthint heightboolean isFillWithWhitethrows IOException {
		zoom(new FileInputStream(in), new FileOutputStream(out), widthheightisFillWithWhite);
	}

缩放图像(按高度和宽度缩放)

Parameters:
in 源图像
out 缩放后的图像
width 缩放后的宽度
height 缩放后的高度
isFillWithWhite 比例不对时是否需要补白:true为补白; false为不补白;
Throws:
java.io.IOException
	public final static void zoom(InputStream inOutputStream outint widthint heightboolean isFillWithWhitethrows IOException {
		BufferedImage src = ImageIO.read(in);
		Image tag = src.getScaledInstance(widthheight.);
		// 计算比例
		double ratio;
		if ((src.getHeight() > height) || (src.getWidth() > width)) {
			if (src.getHeight() > src.getWidth()) {
				ratio = (new Integer(height)).doubleValue() / src.getHeight();
else {
				ratio = (new Integer(width)).doubleValue() / src.getWidth();
			}
			AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance(ratioratio), null);
			tag = op.filter(srcnull);
		}
		if (isFillWithWhite) {
			BufferedImage image = new BufferedImage(widthheight.);
			Graphics2D g = image.createGraphics();
			g.fillRect(0, 0, widthheight);
			if (width == tag.getWidth(null))
				g.drawImage(tag, 0, (height - tag.getHeight(null)) / 2, tag.getWidth(null), tag.getHeight(null), .null);
			else
				g.drawImage(tag, (width - tag.getWidth(null)) / 2, 0, tag.getWidth(null), tag.getHeight(null), .null);
			tag = image;
		}
	}
	public final static byte[] zoomToByteArray(File inint widthint heightthrows IOException {
		return zoomToByteArray(inwidthheightfalse);
	}
	public final static byte[] zoomToByteArray(InputStream inint widthint heightthrows IOException {
		return zoomToByteArray(inwidthheightfalse);
	}
	public final static byte[] zoomToByteArray(File inint widthint heightboolean isFillWithWhitethrows IOException {
		return zoomToByteArray(new FileInputStream(in), widthheightisFillWithWhite);
	}
	public final static byte[] zoomToByteArray(InputStream inint widthint heightboolean isFillWithWhitethrows IOException {
		zoom(inoutwidthheightisFillWithWhite);
		return out.toByteArray();
	}
New to GrepCode? Check out our FAQ X