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 com.sun.image.codec.jpeg.JPEGCodec;

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

import javax.imageio.ImageIO;      

/** 

* 给图片加水印 

*/

public final class Main {      

     public Main() {      

       

     }  

     /**    

      * 把图片印刷到图片上    

      *     

      * @param pressImg 

      *            水印文件    

      * @param targetImg    

      *            目标文件    

      * @param x    

      * @param 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, 00, 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 - x, height      

                     - height_biao - y, 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, 00, wideth, height, null);      

             g.setColor(Color.RED);      

             g.setFont(new Font(fontName, fontStyle, fontSize));      

       

             g.drawString(pressText,fontSize+x,fontSize      

                      +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:/1.jpg""f:/2.jpg"2020);      

         pressText("Java教程网""f:/1.jpg","宋体",10,10,100,5050);  

     }      

时间: 2024-10-20 12:16:55

JAVA给图片加上水印的相关文章

ASP.NET为图片加上水印

为我们发布的图片加上一个水印,也是我们经常要做的事情,那怎么样来做呢,下面就一步步开始吧 首先是一个制作水印的类:ImageHandler,代码如下: C#代码 using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Data; using System.Configuration; using System.Linq; using System.Web; us

java 图片加水印,设置透明度。说明很详细

package com.yidao.common; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.Out

java 图片加水印,设置透明度。说明非常具体

package com.yidao.common; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.Out

Java 实现图片水印之水印图片(SpringMVC + Jsp)

图片水印不仅水印文字还可以是图片,本次实现图片水印之水印图片,以后有需要可以用个代码批量处理自己的图片了. 大家先看效果图 代码编写 1.导入相关架包 2.配置XML文件 web.xml <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-cla

一:Java使用google的thumbnailator工具对图片压缩水印等做处理

Thumbnailator是一个非常好的图片开源工具 使用方法: 在pom中加入以下jar包 <!-- 图片缩略图 图片压缩 水印 start--> <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency><!-- 图

使用WPF将图片转变为灰度并加上水印并保存为文件

原文:使用WPF将图片转变为灰度并加上水印并保存为文件 运行效果: (上图中左下角为原图的缩小显示,By:Johnson为TextBlock) 保存的结果图片:上图的"Test Words."为水印文字. XAML代码:<Window?xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"?xmlns:x="http://schemas.microsoft.com/winfx

ps技术--批量给图片加水印

在日常的办公过程中,对于一些比较重要的文件的扫描件需要特殊处理,这时我们就需要给它们加上水印,保证它们的用途唯一,而这些扫描件很多,不可能一一给他们加水印,所以为提高工作效率,我们就可以使用一些小软件处理,或者使用ps的批处理功能,接下来,给大家分享一些批量水印的制作过程. 在photoshop这款软件中,通过新建动作组和新建动作并记录为单张图片添加水印的步骤流程,可保持该动作记录并一次性为图片批量添加水印,所添加水印图片最好保持大小一致以防出现部分图片水印过大的现象.(借用一下百度的图片,向百

为freetextbox1.6.5上传图片加上水印

Graphics的DrawImage方法,定义了多种原型,可以在制定位置绘制指定Image对象.利用此方法可以在图片对象上再绘制一个水印图片.结合FreeTextBox方便的图片上传功能,可以实现一个适合图片新闻较多的新闻系统.以下WaterMark方法所带参数为文件流,原始图片名称,水印图片名称,图片保存路径等,对应注释理解代码应该没有多大问题. ----------------------------------------------------------------- public v

文件上传,图片加水印

文件上传: 所用控件:FileUpload 使用时的思路: 1.判断用户是否选中了文件 FileUpload.FileName获取选中的文件名,判断长度,如果长度大于零就代表已经选择了文件 JS端:通过ID获取控件,然后控件的value获取选中的文件名 2.将文件保存到服务器上 FileUpload.SaveAs("绝对路径"); 3.获得绝对路径 先编写相对路径:比如"UpLoads/abc.txt" 再把路径映射成绝对路径:Server.MapPath(&quo