21xrx.com
2024-11-25 05:14:56 Monday
登录
文章检索 我的文章 写文章
Java编程中如何使用和处理Image图片
2023-06-13 12:56:38 深夜i     --     --
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();

    }

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复