Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.imageio.ImageIO;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.*;
- public class BufferedImageExample {
- public static void main(String[] args) throws Exception {
- String pathToTheOriginalImg = "d:\\before.jpg";
- String pathToTheResultImg = "d:\\after.jpg";
- BufferedImage bi = ImageIO.read(new File(pathToTheOriginalImg));
- try (ByteArrayOutputStream resultOutputStream = rescale(bi);
- OutputStream outputStream = new FileOutputStream(pathToTheResultImg)) {
- resultOutputStream.writeTo(outputStream);
- }
- }
- private static ByteArrayOutputStream rescale(BufferedImage bi) throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- int originalWidth = bi.getWidth();
- int originalHeight = bi.getHeight();
- int type = bi.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : bi.getType();
- //rescale 50%
- BufferedImage resizedImage = new BufferedImage(originalWidth / 4, originalHeight / 4, type);
- Graphics2D g = resizedImage.createGraphics();
- g.drawImage(bi, 0, 0, originalWidth / 4, originalHeight / 4, null);
- g.dispose();
- g.setComposite(AlphaComposite.Src);
- g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
- g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
- g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- ImageIO.write(resizedImage, "jpg", baos);
- return baos;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement