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 创建时间: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相关推荐
- java css网页布局实例_java代码例子
JAVA 类名.方法名(这里面写的是什么)能不能写个代要是类名直接调用的方法,那这个方法就是静态的(static)方法,是不用new出新对象实例就可以直接调用的方法.看下面例子: class A{ p ...
- java 图片转jpg图片_JAVA转换jpg图片为渐进式图片
很早之前看到一篇<web前端图片极限优化策略>,了解有jpg分为baseline-jpeg和preogressive-jpeg. 具体的区别如下: baseline-jpeg: 在文件较大 ...
- JAVA MYSQL从数据库中提取图片_java web将图片存到储数据库和从数据库中读取图片...
(Notice:以下所有经验也是我根据网上的经验整理的,如有侵权可以联系我删除,Wx:IT_Ezra,QQ 654303408. 有问题讨论也可联系我,QQ同上.) 一.分析一下基本流程 从前台页面获 ...
- android图片显示代码,Android图片处理:识别图像方向并显示(示例代码)
在Android中使用ImageView显示图片的时候发现图片显示不正.方向偏了或者倒过来了. 解决问题非常自然想到的分两步走:1.自己主动识别图像方向,计算旋转角度. 2.对图像进行旋转并显示. 一 ...
- html图片消失代码,HTML图片代码
HTML图片代码 2018-09-10 一.基础代码 二.加边框 1.普通黑色边框(浏览器默认黑色) 2.简单的CSS装饰框 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 三.加CSS滤镜 1.无参数滤镜 ①黑白 ...
- 10款js图片代码_图片滚动代码_图片切换代码_图片特效代码_图片轮播代码(三)
jquery banner滑块导航条幻灯片轮播图片滚动 jQuery blockSlide插件熔岩灯标签导航banner焦点图片切换 jquery图片冒泡插件鼠标悬停图片冒泡动画展示 jquery h ...
- 10款js图片代码_图片滚动代码_图片切换代码_图片特效代码_图片轮播代码(一)
实现图片墙时光穿梭特效 swiper图文卡片滑块切换特效 网页放大镜图片预览插件 图片瀑布流tab分类切换特效 js窗帘式图片切换特效 全屏带视频banner轮播图片特效 Swiper仿魅族官网大图轮 ...
- java获取word图片_java代码获取word文件中的图片
1:需求 在线打开word文件后,用户插入图片.然后保存图片到服务器 2:方案 用pageoffice 在线打开文档的功能和提交数据的功能实现 3:核心代码 4:实现过程 (1)因为要获取数据区域的数 ...
- java 修改pdf图片_java代码将pdf 转换成图片加缩略图 -3
写的这些功能主要就是放在定时任务上,每分钟查询是否要有转换的图片,有的换然后就转换,前端展示图片就可以,大家可以浏览图片.不用在去下载哪些文件了. 下面的是pdf转图片加缩略图的 import jav ...
最新文章
- GCB:生态中心邓晔组-增温改变了微生物相互作用关系
- 智能应答系统php源码,佳蓝智能应答系统 php版下载|佳蓝智能应答系统 php版官方下载-太平洋下载中心...
- 关于JQuery简单介绍
- 启明云端分享|ESP32-C3 IO口控制灯的应用及串口通信示例
- Lamp安装与实现动态网页案例(一)
- 如何将idea自带的maven添加到环境变量
- 【渝粤题库】陕西师范大学202241 金融市场学 作业(专升本)
- 如何查看注解实现_该怎么运用注解呢?Java团队元老有话说
- mysql导入导出数据
- 复星金服微服务_复星金服以区块链技术解决行业痛点 “中招公信链”项目正式启动...
- 辨异 —— 单词(同义词)的辨异
- 蓝牙调试工具如何使用_更新:使用此有价值的工具改进您的蓝牙项目
- Spring核心JAR包
- 使用CefSharp开发一个12306“安心刷票弹窗通知”工具
- 克拉夫斯曼高端定制 刘霞---【YBC中国国际青年创业计划】
- 2022-2028年中国淄博房地产行业市场发展潜力及投资策略研究报告
- 百度文字识别官方Demo
- 大数据投资人必读:中国大数据发展与投资分析报告
- 《Neural Collaborative Filtering》NCF模型的理解以及python代码
- [转贴]一个大学生给女朋友的信
热门文章
- OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()
- QT学习笔记(十二):透明窗体设置
- Android之数据库操作
- 设计模式2—结构型模式
- Introduce Null Object(引入Null 对象)
- ActiveMQ消费者平滑关闭
- oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)
- 二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法
- 天池竞赛-津南数字制造算法挑战赛【赛场二】解决方案分享
- NSThread使用总结