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 创建时间:2018年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系统。

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

  1. java css网页布局实例_java代码例子

    JAVA 类名.方法名(这里面写的是什么)能不能写个代要是类名直接调用的方法,那这个方法就是静态的(static)方法,是不用new出新对象实例就可以直接调用的方法.看下面例子: class A{ p ...

  2. java 图片转jpg图片_JAVA转换jpg图片为渐进式图片

    很早之前看到一篇<web前端图片极限优化策略>,了解有jpg分为baseline-jpeg和preogressive-jpeg. 具体的区别如下: baseline-jpeg: 在文件较大 ...

  3. JAVA MYSQL从数据库中提取图片_java web将图片存到储数据库和从数据库中读取图片...

    (Notice:以下所有经验也是我根据网上的经验整理的,如有侵权可以联系我删除,Wx:IT_Ezra,QQ 654303408. 有问题讨论也可联系我,QQ同上.) 一.分析一下基本流程 从前台页面获 ...

  4. android图片显示代码,Android图片处理:识别图像方向并显示(示例代码)

    在Android中使用ImageView显示图片的时候发现图片显示不正.方向偏了或者倒过来了. 解决问题非常自然想到的分两步走:1.自己主动识别图像方向,计算旋转角度. 2.对图像进行旋转并显示. 一 ...

  5. html图片消失代码,HTML图片代码

    HTML图片代码 2018-09-10 一.基础代码 二.加边框 1.普通黑色边框(浏览器默认黑色) 2.简单的CSS装饰框 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 三.加CSS滤镜 1.无参数滤镜 ①黑白 ...

  6. 10款js图片代码_图片滚动代码_图片切换代码_图片特效代码_图片轮播代码(三)

    jquery banner滑块导航条幻灯片轮播图片滚动 jQuery blockSlide插件熔岩灯标签导航banner焦点图片切换 jquery图片冒泡插件鼠标悬停图片冒泡动画展示 jquery h ...

  7. 10款js图片代码_图片滚动代码_图片切换代码_图片特效代码_图片轮播代码(一)

    实现图片墙时光穿梭特效 swiper图文卡片滑块切换特效 网页放大镜图片预览插件 图片瀑布流tab分类切换特效 js窗帘式图片切换特效 全屏带视频banner轮播图片特效 Swiper仿魅族官网大图轮 ...

  8. java获取word图片_java代码获取word文件中的图片

    1:需求 在线打开word文件后,用户插入图片.然后保存图片到服务器 2:方案 用pageoffice 在线打开文档的功能和提交数据的功能实现 3:核心代码 4:实现过程 (1)因为要获取数据区域的数 ...

  9. java 修改pdf图片_java代码将pdf 转换成图片加缩略图 -3

    写的这些功能主要就是放在定时任务上,每分钟查询是否要有转换的图片,有的换然后就转换,前端展示图片就可以,大家可以浏览图片.不用在去下载哪些文件了. 下面的是pdf转图片加缩略图的 import jav ...

最新文章

  1. GCB:生态中心邓晔组-增温改变了微生物相互作用关系
  2. 智能应答系统php源码,佳蓝智能应答系统 php版下载|佳蓝智能应答系统 php版官方下载-太平洋下载中心...
  3. 关于JQuery简单介绍
  4. 启明云端分享|ESP32-C3 IO口控制灯的应用及串口通信示例
  5. Lamp安装与实现动态网页案例(一)
  6. 如何将idea自带的maven添加到环境变量
  7. 【渝粤题库】陕西师范大学202241 金融市场学 作业(专升本)
  8. 如何查看注解实现_该怎么运用注解呢?Java团队元老有话说
  9. mysql导入导出数据
  10. 复星金服微服务_复星金服以区块链技术解决行业痛点 “中招公信链”项目正式启动...
  11. 辨异 —— 单词(同义词)的辨异
  12. 蓝牙调试工具如何使用_更新:使用此有价值的工具改进您的蓝牙项目
  13. Spring核心JAR包
  14. 使用CefSharp开发一个12306“安心刷票弹窗通知”工具
  15. 克拉夫斯曼高端定制 刘霞---【YBC中国国际青年创业计划】
  16. 2022-2028年中国淄博房地产行业市场发展潜力及投资策略研究报告
  17. 百度文字识别官方Demo
  18. 大数据投资人必读:中国大数据发展与投资分析报告
  19. 《Neural Collaborative Filtering》NCF模型的理解以及python代码
  20. [转贴]一个大学生给女朋友的信

热门文章

  1. OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()
  2. QT学习笔记(十二):透明窗体设置
  3. Android之数据库操作
  4. 设计模式2—结构型模式
  5. Introduce Null Object(引入Null 对象)
  6. ActiveMQ消费者平滑关闭
  7. oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)
  8. 二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法
  9. 天池竞赛-津南数字制造算法挑战赛【赛场二】解决方案分享
  10. NSThread使用总结