Advertisement
Guest User

Untitled

a guest
Jun 27th, 2022
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.63 KB | None | 0 0
  1. import javax.imageio.ImageIO;
  2. import java.awt.*;
  3. import java.awt.image.BufferedImage;
  4. import java.io.*;
  5.  
  6. public class BufferedImageExample {
  7.  
  8.     public static void main(String[] args) throws Exception {
  9.  
  10.         String pathToTheOriginalImg = "d:\\before.jpg";
  11.         String pathToTheResultImg = "d:\\after.jpg";
  12.  
  13.         BufferedImage bi = ImageIO.read(new File(pathToTheOriginalImg));
  14.  
  15.         try (ByteArrayOutputStream resultOutputStream = rescale(bi);
  16.              OutputStream outputStream = new FileOutputStream(pathToTheResultImg)) {
  17.             resultOutputStream.writeTo(outputStream);
  18.         }
  19.     }
  20.  
  21.     private static ByteArrayOutputStream rescale(BufferedImage bi) throws IOException {
  22.         ByteArrayOutputStream baos = new ByteArrayOutputStream();
  23.  
  24.         int originalWidth = bi.getWidth();
  25.         int originalHeight = bi.getHeight();
  26.         int type = bi.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : bi.getType();
  27.  
  28.         //rescale 50%
  29.         BufferedImage resizedImage = new BufferedImage(originalWidth / 4, originalHeight / 4, type);
  30.         Graphics2D g = resizedImage.createGraphics();
  31.         g.drawImage(bi, 0, 0, originalWidth / 4, originalHeight / 4, null);
  32.         g.dispose();
  33.         g.setComposite(AlphaComposite.Src);
  34.         g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
  35.         g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
  36.         g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  37.         ImageIO.write(resizedImage, "jpg", baos);
  38.         return baos;
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement