java将图片切割成规定比例并将其压缩成固定大小

  
  
  
  
  1. import java.io.*; 
  2. import java.awt.*; 
  3. import java.awt.image.*; 
  4. import java.awt.Graphics; 
  5. import java.awt.color.ColorSpace; 
  6. import javax.imageio.ImageIO; 
  7.  
  8. public class ImageCutUtil { 
  9.  
  10. public static void scale(String srcImageFile, double standardWidth, 
  11.     double standardHeight) { 
  12.    try { 
  13.     BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件 
  14.  
  15.     Image image = src.getScaledInstance((int) standardWidth, 
  16.       (int) standardHeight, Image.SCALE_DEFAULT); 
  17.     BufferedImage tag = new BufferedImage((int) standardWidth, 
  18.       (int) standardHeight, BufferedImage.TYPE_INT_RGB); 
  19.     Graphics g = tag.getGraphics(); 
  20.     g.drawImage(image, 00null); 
  21.     g.dispose(); 
  22.     ImageIO.write(tag, "JPG"new File(srcImageFile + "name.JPG"));// 输出到文件流 
  23.    } catch (IOException e) { 
  24.     e.printStackTrace(); 
  25.    } 
  26.  
  27. public static void cut(String srcImageFile, double standardWidth, 
  28.     double standardHeight) { 
  29.    try { 
  30.     Image img; 
  31.     ImageFilter cropFilter; 
  32.     // 读取源图像 
  33.     BufferedImage bi = ImageIO.read(new File(srcImageFile)); 
  34.     int srcWidth = bi.getWidth(); // 源图宽度 
  35.     int srcHeight = bi.getHeight(); // 源图高度 
  36.     if (srcWidth > standardWidth && srcHeight > standardHeight) { 
  37.      Image image = bi.getScaledInstance(srcWidth, srcHeight, 
  38.        Image.SCALE_DEFAULT); 
  39.      int w = 0
  40.      int h = 0
  41.  
  42.      double wScale = srcWidth / standardWidth; 
  43.      double hScale = srcHeight / standardHeight; 
  44.      int srcWidth2; 
  45.      int srcHeight2; 
  46.      if (wScale > hScale) { 
  47.  
  48.       srcWidth2 = (int) (standardWidth * hScale); 
  49.       w = (srcWidth - srcWidth2) / 2
  50.       srcWidth = srcWidth2; 
  51.       h = 0
  52.      } else { 
  53.       srcHeight2 = (int) (standardHeight * wScale); 
  54.       h = (srcHeight - srcHeight2) / 2
  55.       srcHeight = srcHeight2; 
  56.       w = 0
  57.      } 
  58.  
  59.      cropFilter = new CropImageFilter(w, h, srcWidth, srcHeight); 
  60.      img = Toolkit.getDefaultToolkit().createImage( 
  61.        new FilteredImageSource(image.getSource(), cropFilter)); 
  62.      BufferedImage tag = new BufferedImage(srcWidth, srcHeight, 
  63.        BufferedImage.TYPE_INT_RGB); 
  64.      Graphics g = tag.getGraphics(); 
  65.      g.drawImage(img, 00null); 
  66.      g.dispose(); 
  67.      ImageIO.write(tag, "JPEG"new File(srcImageFile)); 
  68.      scale(srcImageFile, standardWidth, standardHeight); 
  69.     } 
  70.    } catch (Exception e) { 
  71.     e.printStackTrace(); 
  72.    } 
  73.  
  74. public static void main(String[] args) { 
  75.    cut("f:/xxde.jpg"200100); 

 

你可能感兴趣的:(java,职场,休闲)