`
daichangfu
  • 浏览: 260324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

微博的图片文字水印处理方法

    博客分类:
  • java
 
阅读更多
import java.awt.Font;
import java.awt.FontMetrics;
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;
import javax.imageio.ImageWriter;

public class WaterMark {
 public void mark(String srcImgPath, String outImgPath, String watermarkStr) {
  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);
   Font font = new Font("Courier New", Font.PLAIN, 12);
   g.setFont(font);
   int x = srcImgWidth - getWatermarkLength(watermarkStr, g) - 3;
   int y = srcImgHeight - 3;
   g.drawString(watermarkStr, x, y);
   g.dispose();
   // 输出图片
   FileOutputStream outImgStream = new FileOutputStream(outImgPath);
   ImageIO.write(bufImg, "jpg", outImgStream);
   outImgStream.flush();
   outImgStream.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 //获取水印文字总长度
 public int getWatermarkLength(String str, Graphics2D g) {
  return g.getFontMetrics(g.getFont()).charsWidth(str.toCharArray(), 0,
    str.length());
 }

 public static void main(String[] args) { // 原图位置, 输出图片位置, 水印文字
  // new WaterMark().mark("D://1.jpg","D://watermark.jpg","weibo.com/zhaojinglun");
  new WaterMark().mark(args[0], args[1], args[2]);
 }
}

原文链接:http://www.qq2012ba.com/article/detail.asp?id=12580

 

分享到:
评论

相关推荐

    新浪微博助手(&S)-crx插件

    动动鼠标即可把自己选中的图片、文字、以及视频的地址转播到新浪微博,您不必担心安全问题,因为这一切都是调用新浪微博官方API接口完成的.程序制作GodSon 4.0.7.0(2014-2-07) chrome更新API 4.0.7.0(2014-2-07)...

    光影魔术手4.2.2去广告绿色版.rar

    可以按各种尺寸及比例进行裁剪,设置图片到指定的尺寸或分辨率,将图片分享到微博,支持添加各种图片边框,可以自由拼图及对图片进行拼接,支持自动/手动抠图,数码暗房可以实现各种不同的照片效果,支持添加文字及图片水印....

    ThinkOX 内容管理 v1.5.0 正式版.zip

    修改:图片处理命名修改 改进:更新手册 修复:修复我的收藏错误 改进:模块在安装的时候清缓存 改进:补充专辑权限 新增:水印 修改:同步绑定开启后页面错位 整合:整合同步登陆绑定解绑设置 修复:修正...

    云边轻博客(开源轻博客) v0.5 beta.rar

    云边轻博客v0.5 beta 发布说明 1、可以发布文字、音乐、视频、图片四大类型内容。并且设计合理使用简便。 2、支持QQ、新浪微博登录,云边外部连接模块设计合理,通过云边二次开发,可以很方便的关联其他网站资源。 ...

    yuncms:YunCMS是基于ThinkPHP5框架的一套CMS系统,方便用户快速建立企业网站,门户网站,个人博客或其他系统的内容管理系统

    普通广告(图片或文字链接) 脚本广告(HTML) 系统管理 基本信息 邮件配置 短信配置 集成登录(QQ,微信,微博) 权限管理 地区管理 图片管理 上载设置(压缩,水印,上传格式,大小,存储方式[本地,OSS,七牛云,...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    酷播(极酷)跨平台多终端网页播放器 v4.0.zip

    9、支持视频列表连播功能,播放器采用JS与DIV CSS结合,实现外部分列表连播功能,用户可自由扩展表现形式,图片列表/文字列表/滚动列表都可实现; 10、支持视频预览功能(播放一小段),指定预览时间值,预览结束,弹...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    B2Bbuilder(B2B电子商务网站) 7.0.1.zip

    支持商铺链接和整站友情链接,可以发布图片或文字链接,可以控制链接顺序及显示形式,图片或文字 计划任务 系统可以自动执行规定好的任务,也可以自己写脚本实现高级功能,让网站可以智能化执行某些功能 公告模块...

Global site tag (gtag.js) - Google Analytics