java给图片加水印_Java 为图片添加水印(图片水印,文字水印)
Java 为图片添加水印(图片水印,文字水印)
2014-07-28·WeaponX
5267 次浏览
```java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public final class ImageUtils {
public ImageUtils() {
}
/**
* 把图片印刷到图片上
*
* @param pressImg
* --水印文件
* @param targetImg
* --目标文件
* @param x
* --x坐标
* @param y
* --y坐标
*/
public final static void pressImage(String pressImg, String targetImg, int x, int y) {
try {
// 目标文件
File file = new File(targetImg);
Image src = ImageIO.read(file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
// 水印文件
File filePress = new File(pressImg);
Image srcPress = ImageIO.read(filePress);
int wideth_biao = srcPress.getWidth(null);
int height_biao = srcPress.getHeight(null);
g.drawImage(srcPress, (wideth - wideth_biao), (height - height_biao), wideth_biao, height_biao, null);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 打印文字水印图片
*
* @param pressText
* -- 文字
* @param targetImg
* -- 目标图片
* @param fontName
* -- 字体名
* @param fontStyle
* -- 字体样式
* @param color
* -- 字体颜色
* @param fontSize
* -- 字体大小
* @param x
* -- x偏移量
* @param y
* -- y偏移量
*/
public static void pressText(String pressText, String targetImg, String fontName, int fontStyle, int color,
int fontSize, int x, int y) {
try {
File file = new File(targetImg);
Image src = ImageIO.read(file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(Color.RED);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize / 2 - y);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
pressImage("E:/logo.png", "E:/ceshi.jpg", 0, 0);
}
}
```
java给图片加水印_Java 为图片添加水印(图片水印,文字水印)相关推荐
- C# 处理PPT水印(一)——添加水印效果(文字水印、图片水印)
对文档添加水印可以有效声明和保护文档,是保护重要文件的方式之一.在PPT文档中同样也可以设置水印,包括文本水印和图片水印,本文将讲述如何通过Spire.Presentation for .NET来对P ...
- 【转】Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]
Fresco简单的使用-SimpleDraweeView 百学须先立志-学前须知: 在我们平时加载图片(不管是下载还是加载本地图片-..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该 ...
- Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用](秒杀imageloader)...
Fresco简单的使用-SimpleDraweeView 百学须先立志-学前须知: 在我们平时加载图片(不管是下载还是加载本地图片-..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该 ...
- vue本地项目配置图片加载失败_vue图片加载失败时用默认图片替换的方法
vue图片加载失败时用默认图片替换的方法 前言 本文主要给大家介绍的关于vue实现图片加载失败时用默认图片替换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下 原理 ...
- Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]
前半部分找不到原文链接了 后半部分原文链接:http://www.jianshu.com/p/5364957dcf49 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者" ...
- Android LruCache和DiskLruCache相结合打造图片加载框架(仿微信图片选择,照片墙)
LrcCache和DiskLruCache相结合打造图片加载框架 转载请标明出处:http://blog.csdn.net/luoshishou/article/details/51299169 源码 ...
- java生成二维码 推广海报添加二维码 文字水印 二维码添加LOGO
前言 场景: 一.推广海报贴上二维码,用户扫码跳转 二.二维码中间贴logo eg:这里使用展示第一种场景 一.使用工具 Google开源项目ZXing(二维条码编解码). ...
- java base64转图片并保存_java将base64解析图片保存到本地。
将base64解析图片保存到本地的两个方法 /** * base64转图片 * @param base64str base64码 * @param savePath 图片路径 * @return */ ...
- android 图片加载 软引用_Android 解决图片大量下载:软引用必须懂4点
1.对象的强.软.弱和虚引用 为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为 :强引用.软引用.弱引用和虚引用 备注: 这四种的区别: ⑴强引用(StrongRefere ...
- 图片加载由模糊变清晰-图片优化
开发过程中,一些图片的展示时,加载很慢很久,后来把图片缩放压成缩略图吧,速度是快了但是模糊不清,如何处理这样问题,下面就和大家分享一下自己的处理方法. 先让客户端加载像素小的缩略图: <img ...
最新文章
- 2022年全球及中国面粉加工机械行业竞争现状与发展前景规模分析报告
- 数学之美:嵌入式编程凹凸性之妙用(附C代码)
- python 判断数字连续_关于python:检测列表中的连续整数
- 中国古代道家思想与网页重构的思考
- 索引法则--字符串不加单引号会导致索引失效
- js中事件处理程序的内存优化
- 追踪电子邮件行踪的“眼”
- iOS遇到问题小总结
- 【自制线系列】Schneider HMI 与 PLC 通信线制作教程
- 使用group by查询时报错ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_grou
- css 背景重复渐变_CSS3重复渐变[CSS3提示]
- 宽带经常掉线应如何解决
- AHU算法课-DP动态规划
- SSD固态硬盘是什么? 由来、分类、优缺点,尽在这里
- webscraper多页爬取_Web Scraper 高级用法——Web Scraper 抓取多条内容 | 简易数据分析 07...
- Fine Dining(最短路应用)
- 两个常用算法day1
- php仿苹果,关于8个超炫酷仿苹果应用的HTML5动画的图文详解
- MySQL 数据库之实现热备份
- 哈工大计算机考研复试指南
热门文章
- CF1569D Inconvenient Pairs
- asp.net调用飞信免费发短信
- IEEE Access 上岸指南
- 科技云报道:混合云起势,青云QingCloud领跑
- 【数据库】在进行概念结构设计时,将事物作为属性的基本准则是什么?
- 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
- linux下不解包查看tar包文件内容
- pc是指什么型号的计算机,pc_pc是什么意思-太平洋IT百科手机版
- 中国移动合肥移动面试总结(计算机类)
- 微信小程序 人脸追踪+人脸识别+视频上传 页面