21xrx.com
2025-03-27 14:08:52 Thursday
文章检索 我的文章 写文章
Java编程中如何使用和处理Image图片
2023-06-13 12:56:38 深夜i     11     0
Java Image 图片处理

在Java编程中,处理图片是一项常见的任务。Java提供了一些功能强大的API,可以方便地加载、处理和显示图片。本文将介绍如何在Java中使用和处理Image图片,包括图片的加载、缩放、旋转和亮度调整等常见操作。

1. 加载图片

在Java中,可以使用ImageIO类来加载图片。例如,下面的代码片段可以加载一张名为“example.png”的图片:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class LoadImageExample {
  public static void main(String[] args) {
    try {
      BufferedImage img = ImageIO.read(new File("example.png"));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

2. 缩放图片

在Java中,可以使用AffineTransform类来缩放图片。例如,下面的代码片段可以将一张图片缩小至原来的一半:

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
public class ScaleImageExample {
  public static void main(String[] args) {
    try {
      BufferedImage inputImg = ImageIO.read(new File("input.png"));
      int scaledWidth = inputImg.getWidth() / 2;
      int scaledHeight = inputImg.getHeight() / 2;
      BufferedImage outputImg = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
      Graphics2D g2d = outputImg.createGraphics();
      AffineTransform at = AffineTransform.getScaleInstance(0.5, 0.5);
      g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
      g2d.drawRenderedImage(inputImg, at);
      ImageIO.write(outputImg, "png", new File("output.png"));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

3. 旋转图片

在Java中,可以使用AffineTransform类来旋转图片。例如,下面的代码片段可以将一张图片旋转90度:

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
public class RotateImageExample {
  public static void main(String[] args) {
    try {
      BufferedImage inputImg = ImageIO.read(new File("input.png"));
      int width = inputImg.getWidth();
      int height = inputImg.getHeight();
      BufferedImage outputImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
      Graphics2D g2d = outputImg.createGraphics();
      AffineTransform at = AffineTransform.getQuadrantRotateInstance(1, width / 2, height / 2);
      g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
      g2d.drawRenderedImage(inputImg, at);
      ImageIO.write(outputImg, "png", new File("output.png"));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

4. 亮度调整图片

在Java中,可以使用RescaleOp类来调整图片的亮度。例如,下面的代码片段可以将一张图片的亮度增加50%:

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.awt.image.RescaleOp;
public class AdjustBrightnessExample {
  public static void main(String[] args) {
    try {
      BufferedImage inputImg = ImageIO.read(new File("input.png"));
      int width = inputImg.getWidth();
      int height = inputImg.getHeight();
      BufferedImage outputImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
      Graphics2D g2d = outputImg.createGraphics();
      float[] scales = 1f;
      float[] offsets = 0.5f;
      RescaleOp rescaleOp = new RescaleOp(scales, offsets, null);
      g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
      g2d.drawImage(inputImg, rescaleOp, 0, 0);
      ImageIO.write(outputImg, "png", new File("output.png"));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

  
  

评论区