java 文字水印 旋转_利用Thumbnailator轻松实现图片缩放、旋转与加水印

概述

Thumbnailator 是一个开源的 Java 项目,它提供了非常简单的 API 来对图片进行缩放、旋转以及加水印的处理。

有多简单呢?简单到一行代码就可以完成图片处理。形式如下:

Thumbnails.of(new File("path/to/directory").listFiles())

.size(640, 480)

.outputFormat("jpg")

.toFiles(Rename.PREFIX_DOT_THUMBNAIL);

当然,Thumbnailator 还有一些使用细节,下面我会一一道来。

核心 API

Thumbnails

Thumbnails 是使用 Thumbnailator 创建缩略图的主入口。

它提供了一组初始化 Thumbnails.Builder的接口。

先看下这组接口的声明:

// 可变长度参数列表

public static Builder of(String... files) {...}

public static Builder of(File... files) {...}

public static Builder of(URL... urls) {...}

public static Builder extends InputStream> of(InputStream... inputStreams) {...}

public static Builder of(BufferedImage... images) {...}

// 迭代器(所有实现 Iterable 接口的 Java 对象都可以,当然也包括 List、Set)

public static Builder fromFilenames(Iterable files) {...}

public static Builder fromFiles(Iterable files) {...}

public static Builder fromURLs(Iterable urls) {...}

public static Builder fromInputStreams(Iterable extends InputStream> inputStreams) {...}

public static Builder fromImages(Iterable images) {...}

很显然,Thumbna

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java实现倾斜水印铺满整张图的方法如下: 1. 首先,将要添水印图片读入内存,可以使用Java自带的ImageIO类实现。 2. 创建一个Graphics2D对象,将要添水印图片作为参数传入,可以使用BufferedImage类的createGraphics方法实现。 3. 设置水印的字体、颜色、透明度等属性,可以使用Graphics2D对象的setFont、setColor、setComposite等方法实现。 4. 根据水印文字内容,使用Graphics2D对象的drawString方法在图片上绘制水印。 5. 对绘制的水印进行旋转、平移等操作,可以使用Graphics2D对象的rotate、translate等方法实现。 6. 将添水印图片输出到文件或输出流中,可以使用ImageIO类的write方法实现。 下面是一个示例代码,实现了在图片上添倾斜水印并铺满整张图的功能: ```java import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class Watermark { public static void main(String[] args) { try { // 读取图片 BufferedImage image = ImageIO.read(new File("input.jpg")); // 创建Graphics2D对象 Graphics2D g2d = image.createGraphics(); // 设置字体、颜色、透明度等属性 Font font = new Font("微软雅黑", Font.BOLD, 50); g2d.setFont(font); g2d.setColor(new Color(255, 255, 255, 100)); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); // 绘制水印 String watermark = "Watermark"; FontMetrics fm = g2d.getFontMetrics(); int width = fm.stringWidth(watermark); int height = fm.getHeight(); int x, y; for (x = -image.getWidth(); x < image.getWidth(); x += width) { for (y = -image.getHeight(); y < image.getHeight(); y += height) { g2d.drawString(watermark, x, y); } } // 旋转水印 AffineTransform at = new AffineTransform(); at.rotate(Math.toRadians(45), image.getWidth() / 2, image.getHeight() / 2); g2d.setTransform(at); // 输出图片 ImageIO.write(image, "jpg", new File("output.jpg")); } catch (Exception e) { e.printStackTrace(); } } } ``` 注意事项: 1. 水印的透明度应该适当调整,以免影响图片的可读性。 2. 旋转水印时,需要注意旋转中心的位置,应该放在图片的中心位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值