JAVA 数字水印 小程序(给图片打上水印或检测水印),求发个源码谢谢

如题... 如题 展开
 我来答
每天学点Java
2014-01-16 · TA获得超过5938个赞
知道大有可为答主
回答量:3547
采纳率:0%
帮助的人:1345万
展开全部
package com.aspectj;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;

import javax.swing.ImageIcon;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**
 * @author Administrator
 * 
 *         TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
 * 
 *         添加水印, filePath 源图片路径 含图片名, watermark 水印图片路径 savePath
 *         为你添加水印后的图片保存路径文件夹 words 要添加的文字
 */
// 添加水印,filePath 源图片路径, watermark 水印图片路径
public class Mark {
private static int wid = 0;
private static int het = 0;

public static boolean createMark(String filePath, String watermark,
String words, String savePath) {

ImageIcon imgIcon = new ImageIcon(filePath);
Image theImg = imgIcon.getImage();
ImageIcon waterIcon = new ImageIcon(watermark);
Image waterImg = waterIcon.getImage();
// /////////////////////////////////////////////////////////////////////
File f = new File(filePath);
String picname = f.getName();// 取得图片名
if (watermark != null && !watermark.equals("")) {// 当水印图标为空时
ImageIcon markIcon = new ImageIcon(watermark); // 要添加的水印图标
Image markImg = markIcon.getImage();
wid = markImg.getWidth(null); // 水印图标宽度
het = markImg.getHeight(null); // 水印图标高度
}
// ////////////////////////////////////////////////////////////////////
int width = theImg.getWidth(null); // 源图片宽度
int height = theImg.getHeight(null); // 源图片高度
if (savePath.equals(""))
savePath = filePath;// 如果未指定保存路径则保存回原路径
else
savePath = savePath + "指定保存文件夹时,拼接出保存路径";
BufferedImage bimage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = bimage.createGraphics();
g.setColor(Color.red); // 设置颜色
g.setBackground(Color.white);
g.drawImage(theImg, 0, 0, null);
g.drawImage(waterImg, width - wid + 5, height - het + 5, null); // 添加图标中间两个数字参数
// 是设定位置
g.drawString(words, width - 120, height - 10); // 添加文字

try {
FileOutputStream out = new FileOutputStream(savePath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
param.setQuality(50f, true); // 图片质量
encoder.encode(bimage, param);
out.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("===========水印失败");
return false;
} finally {
System.gc();// 清理 垃圾对象
}
System.out.println("===========水印成功");
return true;
}

// /测试主程序
public static void main(String[] args) {
createMark("dcc451da81cb39dbfa76de3ad2160924ab183023.jpg", "u=4038692558,3024950167&fm=21&gp=0.jpg", "aas", "");
}
}

检测水印很难做到,但是加上水印还是比较简单的

更多追问追答
追问
有源程序么。。。。q邮xiang:2279777453
追答
这个直接复制就可以运行了
村长老倌
2014-01-16 · 超过29用户采纳过TA的回答
知道答主
回答量:124
采纳率:100%
帮助的人:45.3万
展开全部
生成一个掩码 写入图片 类似于验证码的后面的干扰码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李修明5644
2014-01-16 · TA获得超过1352个赞
知道答主
回答量:295
采纳率:0%
帮助的人:78.5万
展开全部
一楼 给力
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
___x__x__x___
2014-01-16
知道答主
回答量:7
采纳率:0%
帮助的人:9700
展开全部
很多去水印的小工具
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyosing
2014-01-16 · 超过21用户采纳过TA的回答
知道答主
回答量:355
采纳率:0%
帮助的人:77.1万
展开全部
Thumbnailator 是一个为Java界面更流畅的缩略图生成库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式