如何更改java图片
修改Java图片的方法
在Java中修改图片可以通过多种方式实现,包括调整大小、裁剪、旋转、添加滤镜等。以下是几种常见的方法:
使用Java内置库处理图片
Java的BufferedImage和Graphics2D类提供了基础的图片处理功能。以下是一个调整图片大小的示例代码:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageResizer {
public static void resize(String inputImagePath, String outputImagePath, int scaledWidth, int scaledHeight) throws Exception {
File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);
BufferedImage outputImage = new BufferedImage(scaledWidth, scaledHeight, inputImage.getType());
Graphics2D g2d = outputImage.createGraphics();
g2d.drawImage(inputImage, 0, 0, scaledWidth, scaledHeight, null);
g2d.dispose();
ImageIO.write(outputImage, "jpg", new File(outputImagePath));
}
}
使用第三方库处理图片
对于更复杂的图片处理,可以使用第三方库如Thumbnailator:
import net.coobird.thumbnailator.Thumbnails;
public class ThumbnailExample {
public static void main(String[] args) throws Exception {
Thumbnails.of("input.jpg")
.size(640, 480)
.rotate(90)
.outputQuality(0.8)
.toFile("output.jpg");
}
}
图片格式转换
使用ImageIO可以轻松实现图片格式转换:
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageConverter {
public static void convertFormat(String inputImagePath, String outputImagePath, String formatName) throws Exception {
BufferedImage inputImage = ImageIO.read(new File(inputImagePath));
ImageIO.write(inputImage, formatName, new File(outputImagePath));
}
}
添加水印
在图片上添加文字水印的示例:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class WatermarkAdder {
public static void addTextWatermark(String inputImagePath, String outputImagePath, String watermarkText) throws Exception {
BufferedImage sourceImage = ImageIO.read(new File(inputImagePath));
Graphics2D g2d = (Graphics2D) sourceImage.getGraphics();
g2d.setColor(Color.red);
g2d.setFont(new Font("Arial", Font.BOLD, 30));
g2d.drawString(watermarkText, 10, sourceImage.getHeight()/2);
ImageIO.write(sourceImage, "jpg", new File(outputImagePath));
g2d.dispose();
}
}
图片滤镜应用
实现简单的黑白滤镜效果:

import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageFilter {
public static void applyBlackWhiteFilter(String inputImagePath, String outputImagePath) throws Exception {
BufferedImage image = ImageIO.read(new File(inputImagePath));
BufferedImage result = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
result.getGraphics().drawImage(image, 0, 0, null);
ImageIO.write(result, "jpg", new File(outputImagePath));
}
}
这些方法涵盖了Java中图片处理的基本操作,可以根据具体需求选择合适的方法或组合使用。对于更高级的图片处理功能,可以考虑使用OpenCV等专业图像处理库。






