Java图片处理(二)图片加水印
2015-05-15 11:09
288 查看
图片加水印,是通过图片重叠绘制实现的。实现代码如下:
public static void press(String pressImg, 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);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(new Color(255, 255, 255, 80));
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize / 2 - y);
//水印文件
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.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
图片设置透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
文字设置透明度
文字的透明度由颜色决定,因此只需要设置颜色的RGBA即可。如下:
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(new Color(255, 255, 255, 80));
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize/ 2 - y);
public static void press(String pressImg, 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);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(new Color(255, 255, 255, 80));
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize / 2 - y);
//水印文件
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.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
图片设置透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
文字设置透明度
文字的透明度由颜色决定,因此只需要设置颜色的RGBA即可。如下:
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(new Color(255, 255, 255, 80));
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize/ 2 - y);
相关文章推荐
- java图片处理类(图片水印,图片缩放)
- Java关于图片的切割、缩放、类型转换、水印、彩色转黑白处理
- Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理
- java图片处理 文字水印 图片水印 缩放 补白
- java图片处理(水印 缩放 补白)
- GraphicsMagick +im4java高并发处理大型网站图片工具-图片剪切、遮蔽、水印添加之环境搭建
- Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理
- Java 图片处理,水印
- java图片处理类(图片水印,图片缩放)
- java用内部类实现对图片的处理,缩放,添加水印,裁切
- javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印
- 用java处理图片(压缩成小尺寸;加文字和logo水印)
- java用内部类实现对图片的处理,缩放,添加水印,裁切
- Java处理图片缩放,水印的利器 thumbnailator
- java图片处理 (文字水印、图片水印、缩放、补白)
- Java使用google的thumbnailator工具对图片压缩水印等做处理
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- 用java处理图片(压缩成小尺寸;加文字和logo水印)
- java图片处理 文字水印 图片水印 缩放 补白
- Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理