`
fhadmin框架平台
  • 浏览: 19662 次
文章分类
社区版块
存档分类
最新评论

Java 给图片加 文字水印

 
阅读更多
package com.fh.util;

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 javax.imageio.ImageIO;
//import java.io.FileOutputStream;
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**
 * 说明:图片水印处理类
 * 作者:FH Admin
 * from:www.fhadmin.org
 */
public class Watermark {
	
		private	static String strFWATERM,strIWATERM;
		
		static{
			strFWATERM = Tools.readTxtFile(Const.FWATERM);	//读取文字水印配置
			strIWATERM = Tools.readTxtFile(Const.IWATERM);	//读取图片水印配置
		}
		
		/**
		 * 刷新
		*/
		public static void fushValue(){
			strFWATERM = Tools.readTxtFile(Const.FWATERM);	//读取文字水印配置
			strIWATERM = Tools.readTxtFile(Const.IWATERM);	//读取图片水印配置
		}
			
		/**
		 * @param imagePath 图片全路径
		*/
	  	public static void setWatemark(String imagePath){ 
	  		//文字水印
	  		if(null != strFWATERM && !"".equals(strFWATERM)){
				String strFW[] = strFWATERM.split(",fh,");
				if(strFW.length == 5){
					if("yes".equals(strFW[0])){
						pressText(strFW[1].toString(), imagePath, "", 1, Color.RED,Integer.parseInt(strFW[2]), Integer.parseInt(strFW[3]), Integer.parseInt(strFW[4]));	//文字
					}
				}
			}
	  		//图片水印
			if(null != strIWATERM && !"".equals(strIWATERM)){
				String strIW[] = strIWATERM.split(",fh,");
				if(strIW.length == 4){
					if("yes".equals(strIW[0])){
						pressImage(PathUtil.getClasspath() + Const.FILEPATHIMG+strIW[1], imagePath, Integer.parseInt(strIW[2]), Integer.parseInt(strIW[3]));
					}
				}
			}
		  } 
	  
	    /**
	     * 把图片印刷到图片上
	     * 
	     * @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 _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);
	            g.drawImage(src_biao, x, y, wideth_biao, height_biao, null);
	            //水印文件结束
	            g.dispose();
	            /*FileOutputStream out = new FileOutputStream(targetImg);
	            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
	            encoder.encode(image);
	            out.close();*/
	            String formatName = targetImg.substring(targetImg.lastIndexOf(".") + 1);
	            ImageIO.write(image, /*"GIF"*/ formatName /* format desired */ , new File(targetImg) /* target */ );
	            
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }

	    /**
	     * 打印文字水印图片
	     * 
	     * @param pressText
	     *            --文字
	     * @param targetImg --
	     *            目标图片
	     * @param fontName --
	     *            字体名
	     * @param fontStyle --
	     *            字体样式
	     * @param color --
	     *            字体颜色
	     * @param fontSize --
	     *            字体大小
	     * @param x --
	     *            偏移量
	     * @param y
	     */

	    public static void pressText(String pressText, String targetImg,
	    		String fontName, int fontStyle, Color 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);
	            g.setFont(new Font(fontName, fontStyle, fontSize));
	            g.drawString(pressText, x, y);
	            g.dispose();
	            /*FileOutputStream out = new FileOutputStream(targetImg);
	            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
	            encoder.encode(image);
	            out.close();*/
	            String formatName = targetImg.substring(targetImg.lastIndexOf(".") + 1);
	            ImageIO.write(image, /*"GIF"*/ formatName /* format desired */ , new File(targetImg) /* target */ );
	        } catch (Exception e) {
	            System.out.println(e);
	        }
	    }  
	  
	
	
}

 

分享到:
评论

相关推荐

    JAVA处理图片 加文字水印以及灰色透明背景

    JAVA处理图片 加文字水印以及灰色透明背景,处理图片。

    JAVA实现给图片增加图片水印或者文字水印-依赖包

    在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是视觉美化。水印可以是图片形式,也可以是文字形式。本教程将详细讲解如何使用Java来实现这一功能,重点在于介绍所需的依赖包。 首先,我们...

    基于Java给图片添加文字或图片水印

    - 对于文字水印,可以调用`Graphics2D.drawString()`方法,传入文字和位置坐标。 3. **设置水印属性** - 可以调整字体、颜色、透明度、旋转角度等属性,以定制水印的外观。例如,`setFont()`, `setColor()`, `...

    java给图片添加水印

    2. **创建水印工具类**:创建一个名为`WatermarkUtils`的Java类,包含添加文字水印和图片水印的方法。 - **添加文字水印**:首先读取原始图片,然后创建一个含有文字的透明图像(水印),设置合适的字体、颜色、...

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    2. **水印类型**:水印分为文字水印、蒙版水印和logo图片水印。文字水印涉及在图像上绘制文字,需要调整字体、颜色、透明度和角度;蒙版水印则是在图像上覆盖一层半透明的图案或颜色;logo图片水印则是将一个图片...

    图片批量处理大小,批量加图片水印,文字水印

    解决图片的批量处理大小,批量给图片加图片水印,加文字水印

    java 图片缩放、加水印

    图片操作类源代码,该类主要用于给图片进行缩放、加水印和得到图片的高、宽及类型。 具体操作请自己参照方法说明自己测试改写。

    java 图片水印 改变图片大小

    在Java编程领域,图片处理是一项常见的任务,包括添加水印、改变图片大小等。这里我们将深入探讨这些知识点,以及如何在Struts2框架下实现它们。 首先,让我们了解"图片水印"。水印通常用于保护版权或者为图片增加...

    Java给图片加水印

    "Java给图片加水印"这个主题,就是关于如何利用Java技术在图片上添加标识或文字,以保护版权或者增强视觉效果。下面我们将深入探讨这个话题。 首先,我们需要了解Java中的图像处理库,如Java Advanced Imaging (JAI...

    水印 java Graphics2D实现文字图片水印

    在Java编程语言中,添加文字或图片水印是一项常见的任务,尤其在处理图像处理和多媒体应用时。Graphics2D是Java 2D API的一部分,它提供了丰富的绘图和图形操作功能,包括添加水印到图像。下面将详细介绍如何使用...

    java 水印(水印适应图片大小,但个别图片太小不支持)

    - **文字水印的字体大小动态调整**:根据图片宽度调整文字水印的字体大小,保持合适的比例。 - **避免覆盖关键内容**:尽量将水印放置在不会遮挡图片重要信息的区域。 通过以上步骤和策略,我们可以在Java中实现...

    用Java给图片添加文字或图像水印

    4. **绘制文字水印**:如果水印是文字,我们可以使用`Graphics2D.drawString()`方法在图像的指定位置绘制文字。需要考虑字体、颜色、旋转角度等因素。 5. **绘制图像水印**:如果水印是图像,我们可以使用`Graphics...

    Java为图片添加水印功能.rar

    Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...

    JAVA图片或文字水印以及图片缩放

    包含了一些java对图片操作处理的方法: 1.给图片添加图片水印 2.给图片添加文字水印 3.图片缩放 *主方法测试代码简单易懂

    采用java实现图片水印

    本篇文章将详细探讨如何使用Java实现图片水印的添加,以及相关的知识点。 首先,我们需要了解Java中的图像处理库。Java标准库提供了`java.awt`和`javax.imageio`包,它们包含了处理图像的基本功能。`java.awt`包中...

    java中处理图片水印

    在Java编程语言中,处理图片水印涉及到图像处理和图形绘制技术。`Graphics2D`是Java 2D API的一部分,它提供了丰富的功能,可以用来在图像上添加文本、图像等元素,实现水印效果。下面我们将深入探讨如何使用`...

    java 程序图片加水印

    java 程序图片加水印 加文字 任何图片都可以java 程序图片加水印 加文字 任何图片都可以java 程序图片加水印 加文字 任何图片都可以java 程序图片加水印 加文字 任何图片都可以

    去除pdf的图片水印和文字水印

    使用itext开发包对pdf文件进行去水印操作,包括删除图片水印和文字水印。通过遍历pdf的contents对象和xobjects对象,进行对象删除,速度快,效率高

    Android 图片加图片logo水印,文字水印

    本文将详细讲解如何在Android中实现图片加图片Logo水印以及文字水印,并探讨它们在不同位置的设置方法。 首先,我们需要理解Android的图像处理基础。Android提供了丰富的图像处理API,包括Bitmap类用于表示位图,...

    JAVA实现给图片增加图片水印或者文字水印

    总之,Java提供了解决这类问题的基础工具,而通过引入像Apache Commons Imaging这样的库,我们可以更高效、灵活地实现图片水印和文字水印的添加功能。这不仅可以用于个人项目,也可以在企业级应用中进行大规模的图片...

Global site tag (gtag.js) - Google Analytics