方法一:
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 * 图片质量 * @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 ); // 添加水印的文字和设置水印文字出现的内容 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 ; } }
方法二:添加图片水印和文字水印两种,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的质量和GIF相比要高一些。
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 -- * 目标文件 * @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.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 -- * 偏移量 * @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="www.qhd.com.cn"; 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 ); } }
相关推荐
- 使用`drawImage()`方法添加图片水印,需要指定源图像、目标坐标和缩放比例。 - 对于文字水印,可以调用`Graphics2D.drawString()`方法,传入文字和位置坐标。 3. **设置水印属性** - 可以调整字体、颜色、透明...
本篇文章将详细探讨如何使用Java实现图片水印的添加,以及相关的知识点。 首先,我们需要了解Java中的图像处理库。Java标准库提供了`java.awt`和`javax.imageio`包,它们包含了处理图像的基本功能。`java.awt`包中...
以下是一个简单的示例代码片段,展示如何在Java中添加文字水印: ```java import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache....
2. **水印类型**:水印分为文字水印、蒙版水印和logo图片水印。文字水印涉及在图像上绘制文字,需要调整字体、颜色、透明度和角度;蒙版水印则是在图像上覆盖一层半透明的图案或颜色;logo图片水印则是将一个图片...
3. **添加图片水印**:与添加文字水印类似,但需要加载水印图片,调整其大小和位置,再进行合并。 ```java public static BufferedImage addImageWatermark(String srcPath, String watermarkImagePath, String ...
第二种是添加图片水印和文字水印两种方法,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的质量和GIF相比要高一些; 适用人群:Java开发者 使用场景:版权信息标注 目标:可以直接拿来用
java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
在Java编程语言中,处理图片水印涉及到图像处理和图形绘制技术。`Graphics2D`是Java 2D API的一部分,它提供了丰富的功能,可以用来在图像上添加文本、图像等元素,实现水印效果。下面我们将深入探讨如何使用`...
JAVA处理图片 加文字水印以及灰色透明背景,处理图片。
### 使用Java实现图片水印的关键知识点 #### 一、背景介绍 在当今互联网时代,图片作为信息传递的重要载体之一,在各个领域中发挥着至关...以上就是使用Java实现图片水印的主要知识点和技术细节。希望对你有所帮助!
总结来说,Java提供了丰富的API来处理图片水印和大小改变,而Struts2则提供了强大的Web开发支持。结合这两者,我们可以构建出高效、灵活的图片处理服务。理解并熟练掌握这些技术,对于提升Java Web开发能力大有裨益...
下面将详细介绍如何使用Java Graphics2D实现文字和图片水印,以及如何在四个角落添加水印。 首先,我们要导入必要的Java库,包括java.awt和javax.imageio: ```java import java.awt.*; import java.awt.image....
本文将详细介绍如何使用 Java 实现图片添加水印图片和水印文字,并对代码进行解释。 图片添加水印图片 在 Java 中,我们可以使用 `java.awt` 包提供的类来处理图像。首先,我们需要读取原图片和水印图片,然后将...
在Java编程中,添加水印是一项常见的图像处理任务,它涉及到图像处理库的使用和算法设计。本知识点主要探讨如何在Java中实现自适应图片大小的水印功能,以及遇到图片过小时的处理策略。 首先,我们需要理解水印的...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...
Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...
在本文中,我们将深入探讨如何使用Java编程语言为图片添加文字或图像水印。这个话题源于一个名为"Java水印.rar"的压缩包文件,它包含了一段Java源代码,用于实现这一功能。该压缩包有四个文件:RunIt.bat(运行脚本...
java图片添加水印帮助类,在图片上加文字水印、加图片水印!
总之,Java提供了解决这类问题的基础工具,而通过引入像Apache Commons Imaging这样的库,我们可以更高效、灵活地实现图片水印和文字水印的添加功能。这不仅可以用于个人项目,也可以在企业级应用中进行大规模的图片...
图片水印添加工具类 ImageRemark.java,可以添加文字水印,图片水印,定制化参数,可以满足各种图片水印的添加