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 为图片添加水印(图片水印,文字水印)相关推荐

  1. C# 处理PPT水印(一)——添加水印效果(文字水印、图片水印)

    对文档添加水印可以有效声明和保护文档,是保护重要文件的方式之一.在PPT文档中同样也可以设置水印,包括文本水印和图片水印,本文将讲述如何通过Spire.Presentation for .NET来对P ...

  2. 【转】Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]

    Fresco简单的使用-SimpleDraweeView 百学须先立志-学前须知: 在我们平时加载图片(不管是下载还是加载本地图片-..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该 ...

  3. Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用](秒杀imageloader)...

    Fresco简单的使用-SimpleDraweeView 百学须先立志-学前须知: 在我们平时加载图片(不管是下载还是加载本地图片-..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该 ...

  4. vue本地项目配置图片加载失败_vue图片加载失败时用默认图片替换的方法

    vue图片加载失败时用默认图片替换的方法 前言 本文主要给大家介绍的关于vue实现图片加载失败时用默认图片替换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下 原理 ...

  5. Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]

    前半部分找不到原文链接了 后半部分原文链接:http://www.jianshu.com/p/5364957dcf49 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者" ...

  6. Android LruCache和DiskLruCache相结合打造图片加载框架(仿微信图片选择,照片墙)

    LrcCache和DiskLruCache相结合打造图片加载框架 转载请标明出处:http://blog.csdn.net/luoshishou/article/details/51299169 源码 ...

  7. java生成二维码 推广海报添加二维码 文字水印 二维码添加LOGO

    前言 场景: 一.推广海报贴上二维码,用户扫码跳转             二.二维码中间贴logo   eg:这里使用展示第一种场景 一.使用工具 Google开源项目ZXing(二维条码编解码). ...

  8. java base64转图片并保存_java将base64解析图片保存到本地。

    将base64解析图片保存到本地的两个方法 /** * base64转图片 * @param base64str base64码 * @param savePath 图片路径 * @return */ ...

  9. android 图片加载 软引用_Android 解决图片大量下载:软引用必须懂4点

    1.对象的强.软.弱和虚引用 为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为 :强引用.软引用.弱引用和虚引用 备注: 这四种的区别: ⑴强引用(StrongRefere ...

  10. 图片加载由模糊变清晰-图片优化

    开发过程中,一些图片的展示时,加载很慢很久,后来把图片缩放压成缩略图吧,速度是快了但是模糊不清,如何处理这样问题,下面就和大家分享一下自己的处理方法. 先让客户端加载像素小的缩略图: <img ...

最新文章

  1. 2022年全球及中国面粉加工机械行业竞争现状与发展前景规模分析报告
  2. 数学之美:嵌入式编程凹凸性之妙用(附C代码)
  3. python 判断数字连续_关于python:检测列表中的连续整数
  4. 中国古代道家思想与网页重构的思考
  5. 索引法则--字符串不加单引号会导致索引失效
  6. js中事件处理程序的内存优化
  7. 追踪电子邮件行踪的“眼”
  8. iOS遇到问题小总结
  9. 【自制线系列】Schneider HMI 与 PLC 通信线制作教程
  10. 使用group by查询时报错ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_grou
  11. css 背景重复渐变_CSS3重复渐变[CSS3提示]
  12. 宽带经常掉线应如何解决
  13. AHU算法课-DP动态规划
  14. SSD固态硬盘是什么? 由来、分类、优缺点,尽在这里
  15. webscraper多页爬取_Web Scraper 高级用法——Web Scraper 抓取多条内容 | 简易数据分析 07...
  16. Fine Dining(最短路应用)
  17. 两个常用算法day1
  18. php仿苹果,关于8个超炫酷仿苹果应用的HTML5动画的图文详解
  19. MySQL 数据库之实现热备份
  20. 哈工大计算机考研复试指南

热门文章

  1. CF1569D Inconvenient Pairs
  2. asp.net调用飞信免费发短信
  3. IEEE Access 上岸指南
  4. 科技云报道:混合云起势,青云QingCloud领跑
  5. 【数据库】在进行概念结构设计时,将事物作为属性的基本准则是什么?
  6. 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
  7. linux下不解包查看tar包文件内容
  8. pc是指什么型号的计算机,pc_pc是什么意思-太平洋IT百科手机版
  9. 中国移动合肥移动面试总结(计算机类)
  10. 微信小程序 人脸追踪+人脸识别+视频上传 页面