为了添加文字水印效果到图片中,我们可以用Java通过以下三个步骤实现:
1.读取图片数据
2.添加水印文字
3.输出带水印的图片数据
接下来,我将对这三个步骤进行详细解释,并给出两个使用Java实现文本水印效果的示例。
1.读取图片数据
在Java中,我们可以使用ImageIO类的read方法读取图片数据。例如,以下代码演示了如何读取一个JPEG文件并返回一个BufferedImage对象:
BufferedImage image = ImageIO.read(new File("image.jpg"));
2.添加水印文字
在Java中,我们可以使用Graphics2D类的drawString方法将字符串写入图片。以下代码演示了如何向图片添加水印文字“watermark”:
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.WHITE);
Font font = new Font("Arial", Font.BOLD, 36);
g2d.setFont(font);
g2d.drawString("watermark", 10, image.getHeight()-10);
g2d.dispose();
这个过程中,我们利用createGraphics()方法创建一个Graphics2D对象,然后设置颜色、字体、绘制水印文字并最终释放Graphics2D对象资源。
3.输出带水印的图片数据
最后一步是将带水印的图片数据输出到硬盘上,这个操作可以通过ImageIO类的write方法实现。以下代码演示了如何将包含水印文字的图片保存成PNG格式到硬盘上:
ImageIO.write(image, "png", new File("watermarked.png"));
现在,我们来看两个示例:
示例1:向一张图片中添加水印文字
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class AddWatermarkToImage {
public static void main(String[] args) throws Exception {
String imagePath = "image.jpg";
BufferedImage image = ImageIO.read(new File(imagePath));
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.WHITE);
Font font = new Font("Arial", Font.BOLD, 36);
g2d.setFont(font);
g2d.drawString("watermark", 10, image.getHeight()-10);
g2d.dispose();
String watermarkedImagePath = "watermarked.png";
ImageIO.write(image, "png", new File(watermarkedImagePath));
System.out.println("watermark added to image at: "+watermarkedImagePath);
}
}
示例2:利用Java遍历指定文件夹下的所有图片,并为每一张图片添加水印文字
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class AddWatermarkToMultipleImages {
public static void main(String[] args) throws Exception {
String imagePath = "images/";
String[] imageFilenames = new File(imagePath).list();
for(String filename : imageFilenames) {
if(!filename.toLowerCase().endsWith(".jpg") &&
!filename.toLowerCase().endsWith(".png")) {
continue; // skip non-image files
}
BufferedImage image = ImageIO.read(new File(imagePath+filename));
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.WHITE);
Font font = new Font("Arial", Font.BOLD, 36);
g2d.setFont(font);
g2d.drawString("watermark", 10, image.getHeight()-10);
g2d.dispose();
String watermarkedImagePath = "watermarked_" + filename;
ImageIO.write(image, "png", new File(imagePath+watermarkedImagePath));
System.out.println("watermark added to image at:"+watermarkedImagePath);
}
System.out.println("done processing all images");
}
}
这段代码遍历了images文件夹下的所有图片,将每张图片的文件名添加"watermarked_"前缀后输出到images文件夹下,并将加水印后的图片保存为PNG格式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何利用Java在图片上添加文字水印效果 - Python技术站