📄 imageutils.java
字号:
package com.trulytech.mantis.util;
import com.sun.image.codec.jpeg.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import com.trulytech.mantis.system.logWriter;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;
import javax.imageio.ImageIO;
import com.anotherbigidea.flash.movie.Shape;
import com.anotherbigidea.flash.movie.ImageUtil;
import com.anotherbigidea.flash.movie.Frame;
import com.anotherbigidea.flash.movie.Movie;
import java.awt.geom.AffineTransform;
/**
*
* <p>Title: Mantis</p>
*
* <p>Description: 文件图片处理</p>
*
* <p>Copyright: Copyright (c) 2002</p>
*
* <p>Company: </p>
*
* @author Wang Xian
* @version 1.0
*/
public class ImageUtils {
/**
* 产生缩略图
* @param Src_file String 源文件 必须是JPG,PNG,GIF文件
* @param width int 长度
* @param height int 高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage Thumbnail(String Src_file, int width,
int height) throws Exception {
logWriter.Info("产生缩略图,源文件:" + Src_file);
Image image = Toolkit.getDefaultToolkit().getImage(Src_file);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
BufferedImage thumbImage = new BufferedImage(width,
height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, width, height, null);
graphics2D.dispose();
return thumbImage;
}
/**
* 产生缩略图
* @param image BufferedImage 源文件
* @param width int 长度
* @param height int 高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage Thumbnail(BufferedImage image, int width,
int height) throws Exception {
logWriter.Info("产生缩略图");
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
BufferedImage thumbImage = new BufferedImage(width,
height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, width, height, null);
graphics2D.dispose();
return thumbImage;
}
/**
* 产生缩略图
* @param Src_file String 源文件 必须是JPG,PNG,GIF文件
* @param Rate int 缩小比例(百分比)
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage Thumbnail(String Src_file, int Rate) throws
Exception {
logWriter.Info("产生缩略图,源文件:" + Src_file);
Image image = Toolkit.getDefaultToolkit().getImage(Src_file);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
int imageWidth = image.getWidth(null);
int imageHeight = image.getHeight(null);
BufferedImage thumbImage = new BufferedImage(imageWidth * Rate / 100,
imageHeight * Rate / 100,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, imageWidth * Rate / 100,
imageHeight * Rate / 100, null);
graphics2D.dispose();
return thumbImage;
}
/**
* 产生缩略图
* @param image BufferedImage 源文件
* @param Rate int 缩小比例(百分比)
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage Thumbnail(BufferedImage image, int Rate) throws
Exception {
logWriter.Info("产生缩略图");
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
int imageWidth = image.getWidth(null);
int imageHeight = image.getHeight(null);
BufferedImage thumbImage = new BufferedImage(imageWidth * Rate / 100,
imageHeight * Rate / 100,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, imageWidth * Rate / 100,
imageHeight * Rate / 100, null);
graphics2D.dispose();
return thumbImage;
}
/**
* 生成大图的截取图
* @param Src_file String 源文件
* @param src_x int 源文件x位置
* @param src_y int 源文件y位置
* @param desc_width int 目标文件宽度
* @param desc_height int 目标文件高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage DrawClip(String Src_file,
int src_x, int src_y, int desc_width,
int desc_height) throws
Exception {
logWriter.Info("产生图片分割,源文件:" + Src_file);
Image image = Toolkit.getDefaultToolkit().getImage(Src_file);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
BufferedImage thumbImage = new BufferedImage(desc_width,
desc_height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, desc_width,
desc_height, src_x, src_y, image.getWidth(null),
image.getHeight(null), null);
graphics2D.dispose();
return thumbImage;
}
/**
* 生成大图的截取图
* @param image BufferedImage 源文件
* @param src_x int 源文件x位置
* @param src_y int 源文件y位置
* @param desc_width int 目标文件宽度
* @param desc_height int 目标文件高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage DrawClip(BufferedImage image,
int src_x, int src_y, int desc_width,
int desc_height) throws
Exception {
logWriter.Info("产生图片分割");
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
BufferedImage thumbImage = new BufferedImage(desc_width,
desc_height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, desc_width,
desc_height, src_x, src_y, image.getWidth(null),
image.getHeight(null), null);
graphics2D.dispose();
return thumbImage;
}
/**
* 合并多个图片(请注意数组的顺序是按照图片大小的顺序排列,大的在前,小的在后,否则大图将覆盖小图)
* @param Src_file String[] 资源文件
* @param x int[] x位置
* @param y int[] y位置
* @param Totalwidth int 生成图片的宽度
* @param Totalheight int 生成图片的高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage Coalition(String[] Src_file, int[] x,
int[] y, int Totalwidth,
int Totalheight) throws
Exception {
logWriter.Info("产生合并图");
Image[] image = new Image[Src_file.length];
MediaTracker[] mediaTracker = new MediaTracker[Src_file.length];
for (int i = 0; i < Src_file.length; i++) {
image[i] = Toolkit.getDefaultToolkit().getImage(Src_file[i]);
mediaTracker[i] = new MediaTracker(new Container());
mediaTracker[i].addImage(image[i], 0);
mediaTracker[i].waitForID(0);
}
BufferedImage thumbImage = new BufferedImage(Totalwidth,
Totalheight,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
for (int i = 0; i < Src_file.length; i++) {
graphics2D.drawImage(image[i], x[i], y[i], image[i].getWidth(null),
image[i].getHeight(null), null);
}
graphics2D.dispose();
return thumbImage;
}
/**
* 合并多个图片 (请注意数组的顺序是按照图片大小的顺序排列,大的在前,小的在后,否则大图将覆盖小图)
* @param image BufferedImage[] 资源文件
* @param x int[] x位置
* @param y int[] y位置
* @param Totalwidth int 生成图片的宽度
* @param Totalheight int 生成图片的高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage Coalition(BufferedImage[] image, int[] x,
int[] y, int Totalwidth,
int Totalheight) throws
Exception {
logWriter.Info("产生合并图");
BufferedImage thumbImage = new BufferedImage(Totalwidth,
Totalheight,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
for (int i = 0; i < image.length; i++) {
graphics2D.drawImage(image[i], x[i], y[i], image[i].getWidth(null),
image[i].getHeight(null), null);
}
graphics2D.dispose();
return thumbImage;
}
/**
* 产生图片字符串
* @param Src String 字符串
* @param BGColor Color 背景色
* @param FontColor Color 文字颜色
* @param font Font 字体
* @param x int x坐标
* @param y int y坐标
* @param width int 图片宽度
* @param height int 图片高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage DrawStringImg(String Src, Color BGColor,
Color FontColor, Font font, int x,
int y,
int width, int height) throws
Exception {
logWriter.Info("产生文字图");
BufferedImage thumbImage = new BufferedImage(width,
height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.setBackground(BGColor);
graphics2D.setColor(BGColor);
graphics2D.fillRect(0, 0, width, height);
graphics2D.setFont(font);
graphics2D.setColor(FontColor);
graphics2D.drawString(Src, x, y);
graphics2D.dispose();
return thumbImage;
}
/**
* 添加字符串到图片
* @param Src String 字符串
* @param Src_file 背景图
* @param FontColor Color 文字颜色
* @param font Font 字体
* @param x int x坐标
* @param y int y坐标
* @param width int 图片宽度
* @param height int 图片高度
* @return BufferedImage
* @throws Exception
*/
public static BufferedImage DrawString(String Src,
String Src_file,
Color FontColor, Font font, int x,
int y,
int width, int height) throws
Exception {
logWriter.Info("产生文字图");
Image image = Toolkit.getDefaultToolkit().getImage(Src_file);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
BufferedImage thumbImage = new BufferedImage(width,
height,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -