第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > java如何添加自定义的图片_java代码将图片加上自定义水印 -4

java如何添加自定义的图片_java代码将图片加上自定义水印 -4

时间:2019-04-20 03:46:47

相关推荐

java如何添加自定义的图片_java代码将图片加上自定义水印 -4

java代码将图片加上自定义水印,然后生成了新的图片

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 :liu.lu

* @version 创建时间:4月24日 下午9:04:20

Description:

*/

public class WaterMarkUtils {

/**

* @param srcImgPath 源图片路径

* @param tarImgPath 保存的图片路径

* @param waterMarkContent 水印内容

* @param markContentColor 水印颜色

* @param font 水印字体

*/

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

try {

// 读取原图片信息

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);

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:\\temp\\picture\\魔方.jpg"; //源图片地址

String tarImgPath="D:/temp/t.jpg"; //待存储的地址

String waterMarkContent="我爱生活"; //水印内容

Color color=new Color(135,206,250,130);//水印图片色彩以及透明度

new WaterMarkUtils().addWaterMark(srcImgPath, tarImgPath, waterMarkContent,color,font);

}

}

测试结果:

原图片:

加完之后:

下面在给大家弄个之前在linux上弄的转换图片脚本 centos7系统。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。