Java中处理JPG图片的常见方法有哪些?
- 后端开发
- 2025-10-10
- 6
Java处理JPG图片可以通过多种方式进行,以下是一些常见的方法和步骤:
读取JPG图片
你需要读取JPG图片,可以使用Java的ImageIO类来读取图片。

转换图片格式
你可以使用ImageIO类来转换图片格式。
import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageConverter { public static void main(String[] args) { try { BufferedImage originalImage = ImageIO.read(new File("path/to/image.jpg")); BufferedImage convertedImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_RGB); convertedImage.getGraphics().drawImage(originalImage, 0, 0, null); ImageIO.write(convertedImage, "png", new File("path/to/convertedImage.png")); System.out.println("Image converted successfully."); } catch (IOException e) { e.printStackTrace(); } } }
裁剪图片
你可以使用Graphics2D类来裁剪图片。
import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageCropping { public static void main(String[] args) { try { BufferedImage originalImage = ImageIO.read(new File("path/to/image.jpg")); BufferedImage croppedImage = originalImage.getSubimage(100, 100, 200, 200); ImageIO.write(croppedImage, "jpg", new File("path/to/croppedImage.jpg")); System.out.println("Image cropped successfully."); } catch (IOException e) { e.printStackTrace(); } } }
添加水印
你可以使用Graphics2D类来在图片上添加水印。

import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageWatermark { public static void main(String[] args) { try { BufferedImage originalImage = ImageIO.read(new File("path/to/image.jpg")); Graphics2D g2d = (Graphics2D) originalImage.getGraphics(); AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); g2d.setComposite(alphaChannel); g2d.setColor(Color.BLUE); g2d.setFont(new Font("Arial", Font.BOLD, 64)); FontMetrics fontMetrics = g2d.getFontMetrics(); Rectangle2D rect = fontMetrics.getStringBounds("Watermark", g2d); int centerX = (originalImage.getWidth() (int) rect.getWidth()) / 2; int centerY = originalImage.getHeight() / 2; g2d.drawString("Watermark", centerX, centerY); g2d.dispose(); ImageIO.write(originalImage, "jpg", new File("path/to/watermarkedImage.jpg")); System.out.println("Watermark added successfully."); } catch (IOException e) { e.printStackTrace(); } } }
缩放图片
你可以使用Graphics2D类来缩放图片。
import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageScaling { public static void main(String[] args) { try { BufferedImage originalImage = ImageIO.read(new File("path/to/image.jpg")); BufferedImage scaledImage = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = scaledImage.createGraphics(); g2d.drawImage(originalImage, 0, 0, 500, 500, null); g2d.dispose(); ImageIO.write(scaledImage, "jpg", new File("path/to/scaledImage.jpg")); System.out.println("Image scaled successfully."); } catch (IOException e) { e.printStackTrace(); } } }
FAQs
Q1: 如何在Java中读取JPG图片?

A1: 你可以使用ImageIO类来读取JPG图片,以下是一个示例代码:
BufferedImage image = ImageIO.read(new File("path/to/image.jpg"));
Q2: 如何在Java中将JPG图片转换为PNG格式?
A2: 你可以使用ImageIO类来转换图片格式,以下是一个示例代码:
BufferedImage originalImage = ImageIO.read(new File("path/to/image.jpg")); BufferedImage convertedImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g2d = convertedImage.createGraphics(); g2d.drawImage(originalImage, 0, 0, null); g2d.dispose(); ImageIO.write(convertedImage, "png", new File("path/to/convertedImage.png"));