⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageutils.java

📁 java版源代码,里面包含很多源代码,大家可以看看.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -