java课程设计不会做?

java课程设计网提供java相关课程设计的学习方法以及java案例、javaweb案例、java课程设计的源代码、题目、报告论文、操作步骤等,可供您免费下载学习,您可以根据您的需求查询您要的java课程设计案例或者java课程设计报告、论文,试试吧!

在图片上加水印,支持字体样式,位置,大小,颜色

在图片上加水印,支持字体样式,位置,大小,颜色

在图片上加水印,支持字体样式,位置,大小,颜色

在图片上加水印,支持字体样式,位置,大小,颜色

直接看源代码:



package com.test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;

/**
 * 图片上加水印
 * 
 * @author 原创 http://www.javakcsj.com/
 * @date2018-8-22
 */
public class Pic2WaterTool {

	public void addWaterMark(String srcImgPath, String tarImgPath,
			String waterMarkContent, Color markContentColor, Font font) {

		try {
			// 读取source源图片信息
			File srcImgFile = new File(srcImgPath);
			Image srcImg = ImageIO.read(srcImgFile);// 把需要水印的文字转换成图片了
			int srcImgWidth = srcImg.getWidth(null);// 图片的高度
			int srcImgHeight = srcImg.getHeight(null);// 图片的宽度
			// 加水印
			BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight,
					BufferedImage.TYPE_INT_RGB);
			Graphics2D g = bufImg.createGraphics();
			g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
			g.setColor(markContentColor); // 根据图片的背景设置水印颜色
			g.setFont(font); // 字体样式

			// 水印的位置,即坐标
			// int x = srcImgWidth - 2*getWatermarkLength(waterMarkContent, g);
			// int y = srcImgHeight - 2*getWatermarkLength(waterMarkContent, g);
			int x = 100;
			int y = 100;
			g.drawString(waterMarkContent, x, y);// 开始水印
			g.dispose();
			// 把完成的图片复制到本地
			FileOutputStream outImgStream = new FileOutputStream(tarImgPath);
			ImageIO.write(bufImg, "jpg", outImgStream);
			System.out.println("完成了添加");
			outImgStream.flush();
			outImgStream.close();

		} catch (Exception e) {
			// TODO: handle exception
		}
	}

	public int getWatermarkLength(String waterMarkContent, Graphics2D g) {
		return g.getFontMetrics(g.getFont()).charsWidth(
				waterMarkContent.toCharArray(), 0, waterMarkContent.length());
	}

	public static void main(String[] args) {
		Font font = new Font("微软雅黑", Font.PLAIN, 35); // 水印字体的样式
		String srcImgPath = "D:/a.jpg"; // old图片
		String tarImgPath = "D:/b.jpg"; // 完成后的图片的地址
		String waterMarkContent = "哈哈哈哈哈"; // 水印的具体内容
		Color color = new Color(255, 255, 255);
		// 水印图片色彩以及透明度
		new Pic2WaterTool().addWaterMark(srcImgPath, tarImgPath,
				waterMarkContent, color, font);

	}
}

  直接可以拷贝到你的工程中测试,有问题可以留言。

大家都在看

(0) 回复

留言评论

*请勿填写与java课程设计无关内容,如内容中包含有关政治、色情等不健康内容,且违反《中华人民共和国网络安全法》本站将第一时间移交公安部门。