中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

數(shù)字圖像水印代碼java,什么叫數(shù)字水印

java實(shí)現(xiàn)數(shù)字水印,不可見

數(shù)字水印的不可見性

金平ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

數(shù)字水印的不可見性就是數(shù)字水印嵌入到媒體中后通過人的感知系統(tǒng)是察覺不到的,對(duì)于圖像數(shù)字水印來說就是嵌入水印的圖像和原始圖像看起來是一樣的。

數(shù)字水印的魯棒性

數(shù)字水印的魯棒性是指在經(jīng)歷多種無(wú)意或有意的信號(hào)處理過程后,數(shù)字水印仍能保持部分完整性并能被準(zhǔn)確鑒別。可能的信號(hào)處理過程包括信道噪聲、濾波、數(shù)/模與模/數(shù)轉(zhuǎn)換、重采樣、剪切、位移、尺度變化以及有損壓縮編碼等。對(duì)于圖像數(shù)字水印來說,就是嵌入水印的圖像在經(jīng)過另存、拉伸、扭曲等操作后任然能夠提取水印。

用Java給jpg圖片加文字水印,加的水印蓋住了原來的圖片,怎么辦。

jpg文件上的水印的清除方法:

如果需要將帶水印的JPG轉(zhuǎn)換成05H的PDG:

1、 將PDG批量更名為JPG。如果下載的時(shí)候就已經(jīng)是JPG,則此步省略。

2、用ComicEnhancer Pro打開帶水印的JPG,色彩選“單色”,水印沒了吧?不過這個(gè)時(shí)候文字多半也會(huì)變得很細(xì),可以通過增加“Gamma校正”值,或用“曲線”來加黑。注意“Gamma校正”和“曲線”選一個(gè)足矣。調(diào)節(jié)好以后,轉(zhuǎn)換成TIFF。

3、將TIFF文件更名為PDG,并且符合PDG文件命名規(guī)范,然后用高版本DjVuToy的“PDG壓縮”功能轉(zhuǎn)換成05H的PDG。注意轉(zhuǎn)換的時(shí)候把“轉(zhuǎn)換為快速版”選項(xiàng)去掉。

如果不需要轉(zhuǎn)換成PDG,而是希望在去掉水印的同時(shí)盡可能保持清晰:

1、將PDG批量更名為JPG。如果下載的時(shí)候就已經(jīng)是JPG,則此步省略。

2、用ComicEnhancer Pro打開帶水印的JPG,將“高亮度”設(shè)置為125,看到那神奇的效果了嗎?如果希望對(duì)文字的影響盡可能小,還可以嘗試將“高亮值”設(shè)置為210。

3、下面就看你高興了,可以直接存為JPG,也可以在色彩選“16級(jí)灰度”、“8級(jí)灰度”、“4級(jí)灰度”,然后轉(zhuǎn)換成PNG?;叶燃?jí)數(shù)越少,圖像損失越多,文件越小,16級(jí)灰度基本上肉眼看不出文字部分有任何損失,4級(jí)灰度則很明顯,可以結(jié)合“曲線”或“Gamma校正”等加以改善。

JAVA 數(shù)字水印 小程序(給圖片打上水印或檢測(cè)水?。?,求發(fā)個(gè)源碼謝謝

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?要更改此生成的類型注釋的模板,請(qǐng)轉(zhuǎn)至?窗口?-?首選項(xiàng)?-?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(""))?{//?當(dāng)水印圖標(biāo)為空時(shí)

ImageIcon?markIcon?=?new?ImageIcon(watermark);?//?要添加的水印圖標(biāo)

Image?markImg?=?markIcon.getImage();

wid?=?markImg.getWidth(null);?//?水印圖標(biāo)寬度

het?=?markImg.getHeight(null);?//?水印圖標(biāo)高度

}

//?////////////////////////////////////////////////////////////////////

int?width?=?theImg.getWidth(null);?//?源圖片寬度

int?height?=?theImg.getHeight(null);?//?源圖片高度

if?(savePath.equals(""))

savePath?=?filePath;//?如果未指定保存路徑則保存回原路徑

else

savePath?=?savePath?+?"指定保存文件夾時(shí),拼接出保存路徑";

BufferedImage?bimage?=?new?BufferedImage(width,?height,

BufferedImage.TYPE_INT_RGB);

Graphics2D?g?=?bimage.createGraphics();

g.setColor(Color.red);?//?設(shè)置顏色

g.setBackground(Color.white);

g.drawImage(theImg,?0,?0,?null);

g.drawImage(waterImg,?width?-?wid?+?5,?height?-?het?+?5,?null);?//?添加圖標(biāo)中間兩個(gè)數(shù)字參數(shù)

//?是設(shè)定位置

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);?//?圖片質(zhì)量

encoder.encode(bimage,?param);

out.close();

}?catch?(Exception?e)?{

e.printStackTrace();

System.out.println("===========水印失敗");

return?false;

}?finally?{

System.gc();//?清理?垃圾對(duì)象

}

System.out.println("===========水印成功");

return?true;

}

//?/測(cè)試主程序

public?static?void?main(String[]?args)?{

createMark("dcc451da81cb39dbfa76de3ad2160924ab183023.jpg",?"u=4038692558,3024950167fm=21gp=0.jpg",?"aas",?"");

}

}

檢測(cè)水印很難做到,但是加上水印還是比較簡(jiǎn)單的

用java實(shí)現(xiàn)對(duì)視頻添加水印的代碼或思路

package com.jc.ts.services;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.ImageFormatException;

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

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

/**

*添加圖片水印的服務(wù)類

* */

public class WaterMark {

/**

* @param sizeContext添加水印文字

* @param request 請(qǐng)求流對(duì)象

* @param request 響應(yīng)流對(duì)象

* */

@SuppressWarnings("deprecation")

public static void createMarkSize(String sizeContext,HttpServletRequest request,HttpServletResponse response) {

try {

String path=request.getRealPath(request.getServletPath());

FileInputStream in=new FileInputStream(path);

Image src=ImageIO.read(in);

int w=src.getWidth(null);

int h=src.getHeight(null);

BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//構(gòu)建畫板

Graphics g=img.getGraphics();//得到畫筆

g.drawImage(src,0,0,w,h,null);//把源圖片寫入畫板

g.setColor(Color.red);

g.drawString(sizeContext,10,5); // 添加文字

g.dispose();//生成圖片

JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());

e.encode(img);

response.getOutputStream().close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ImageFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* @param localPath 添加水印LOGO路徑

* @param request 請(qǐng)求流對(duì)象

* @param request 響應(yīng)流對(duì)象

**/

@SuppressWarnings("deprecation")

public static void createMarkLogo(String localPath,HttpServletRequest request,HttpServletResponse response) {

try {

FileInputStream file=new FileInputStream(localPath);

Image fimg=ImageIO.read(file);

int fw=fimg.getWidth(null);

int fh=fimg.getHeight(null);

String path=request.getRealPath(request.getServletPath());

FileInputStream in=new FileInputStream(path);

Image src=ImageIO.read(in);

int w=src.getWidth(null);

int h=src.getHeight(null);

BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//構(gòu)建畫板

Graphics g=img.getGraphics();//得到畫筆

g.drawImage(src,0,0,w,h,null);//把原圖片寫入畫板

g.drawImage(fimg,w-20,h-15,fw,fh,null);//把水印圖片寫入畫板

g.dispose();//生成圖片

JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());

e.encode(img);

response.getOutputStream().close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ImageFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

/**

* @param localPath 添加水印圖片路徑

* @param request 請(qǐng)求流對(duì)象

* @param request 響應(yīng)流對(duì)象

* @param width 水印圖片的寬度

* @param height 水印圖片的長(zhǎng)度

**/

@SuppressWarnings("deprecation")

public static void createMarkLogo(String localPath,HttpServletRequest request,HttpServletResponse response,int width,int height) {

try {

FileInputStream file=new FileInputStream(localPath);

Image fimg=ImageIO.read(file);

int fw=fimg.getWidth(null);

int fh=fimg.getHeight(null);

String path=request.getRealPath(request.getServletPath());

FileInputStream in=new FileInputStream(path);

Image src=ImageIO.read(in);

int w=src.getWidth(null);//w為你過濾圖片的寬度

int h=src.getHeight(null);//h為你過濾圖片的長(zhǎng)度

BufferedImage img=new BufferedImage(w+width,h+height,BufferedImage.TYPE_INT_RGB);//構(gòu)建畫板(畫板的寬度為兩個(gè)圖片之和)

Graphics g=img.getGraphics();//得到畫筆

g.drawImage(src,0,0,w,h,null);//把原圖片寫入畫板

g.drawImage(fimg,width,height,fw,fh,null);//把水印圖片寫入畫板

g.dispose();//生成圖片

JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());

e.encode(img);

response.getOutputStream().close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ImageFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

注意第三個(gè)方法的注釋地方g.drawImage(fimg,width,height,fw,fh,null);根據(jù)參數(shù)你在調(diào)調(diào)(放原圖下面的)

過濾器調(diào)用

package com.jc.ts.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.jc.ts.services.WaterMark;

public class WaterFilter implements Filter {

public void destroy() {

// TODO Auto-generated method stub

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,

FilterChain arg2) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest)arg0;

HttpServletResponse response=(HttpServletResponse)arg1;

//WaterMark.createMarkSize("南京ts", request, response);

//WaterMark.createMarkLogo("D:\\workspace\\mybook\\WebRoot\\images\\logo\\book.jpg", request, response);

WaterMark.createMarkLogo("D:\\workspace\\mybook\\WebRoot\\images\\logo\\book.jpg", request, response,20,30);

//注意路徑為絕對(duì)路徑且三個(gè)效果不能同時(shí)執(zhí)行

}

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

web.xml配置(寫在servlet上面)

filter

descriptionThis is the description of my J2EE component/description

display-nameThis is the display name of my J2EE component/display-name

filter-nameWaterFilter/filter-name

filter-classcom.jc.ts.filter.WaterFilter/filter-class

/filter

java圖片加水印代碼 最好有實(shí)例?。。∠戎x了??!

文字水印

import java.awt.*;

import java.awt.image.*;

import java.io.*;

import javax.swing.*;

import com.sun.image.codec.jpeg.*;

public class WaterSet {

/**

* 給圖片添加水印

*

* @param filePath

* 需要添加水印的圖片的路徑

* @param markContent

* 水印的文字

* @param markContentColor

* 水印文字的顏色

* @param qualNum

* 圖片質(zhì)量

* @return

*/

public boolean createMark(String filePath, String markContent,

Color markContentColor, float qualNum) {

ImageIcon imgIcon = new ImageIcon(filePath);

Image theImg = imgIcon.getImage();

int width = theImg.getWidth(null);

int height = theImg.getHeight(null);

BufferedImage bimage = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Graphics2D g = bimage.createGraphics();

g.setColor(markContentColor);

g.setBackground(Color.white);

g.drawImage(theImg, 0, 0, null);

g.drawString(markContent, width / 5, height / 5); // 添加水印的文字和設(shè)置水印文字出現(xiàn)的內(nèi)容

g.dispose();

try {

FileOutputStream out = new FileOutputStream(filePath);

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);

param.setQuality(qualNum, true);

encoder.encode(bimage, param);

out.close();

} catch (Exception e) {

return false;

}

return true;

}

}

圖片水印

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() {

}

/*

* public final static String getPressImgPath() { return ApplicationContext

* .getRealPath("/template/data/util/shuiyin.gif"); }

*/

/**

* 把圖片印刷到圖片上

*

* @param pressImg --

* 水印文件

* @param targetImg --

* 目標(biāo)文件

* @param x

* --x坐標(biāo)

* @param y

* --y坐標(biāo)

*/

public final static void pressImage(String pressImg, String targetImg,

int x, int y) {

try {

//目標(biāo)文件

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 _filebiao = new File(pressImg);

Image src_biao = ImageIO.read(_filebiao);

int wideth_biao = src_biao.getWidth(null);

int height_biao = src_biao.getHeight(null);

g.drawImage(src_biao, (wideth - wideth_biao) / 2,

(height - height_biao) / 2, wideth_biao, height_biao, null);

//水印文件結(jié)束

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 --

* 目標(biāo)圖片

* @param fontName --

* 字體名

* @param fontStyle --

* 字體樣式

* @param color --

* 字體顏色

* @param fontSize --

* 字體大小

* @param x --

* 偏移量

* @param 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);

// String s="";

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("F:/logo.png", "F:/123.jpg", 0, 0);

}

}

新聞名稱:數(shù)字圖像水印代碼java,什么叫數(shù)字水印
本文來源:http://www.rwnh.cn/article18/dssdidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、軟件開發(fā)、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
芜湖市| 汉中市| 黔西| 丰县| 南木林县| 贡山| 朝阳市| 调兵山市| 桂平市| 安溪县| 溧阳市| 北海市| 丁青县| 嘉兴市| 玉山县| 行唐县| 饶平县| 沭阳县| 德州市| 商洛市| 井陉县| 汤阴县| 闵行区| 永靖县| 介休市| 阳信县| 乌恰县| 大宁县| 霍山县| 无棣县| 武胜县| 中方县| 阿勒泰市| 礼泉县| 贵定县| 长岭县| 泗水县| 武鸣县| 沐川县| 杭锦旗| 中江县|