+
95
-

springboot如何实现图片水印及裁剪?

springboot如何实现图片水印及裁剪?

网友回复

+
15
-

在 Spring Boot 应用中,可以使用 Java 的图像处理库(如 java.awt 和 javax.imageio)来实现图片水印和裁剪功能。以下是一个示例,展示如何实现这些功能。

1. 添加依赖

确保你的 pom.xml 中包含以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
2. 创建图片处理服务

创建一个服务类,用于处理图片的水印和裁剪功能。

import org.springframework.stereotype.Service;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

@Service
public class ImageService {

    public BufferedImage addWatermark(BufferedImage sourceImage, String watermarkText) {
        Graphics2D g2d = (Graphics2D) sourceImage.getGraphics();

        // 设置水印字体和颜色
        Font font = new Font("Arial", Font.BOLD, 30);
        g2d.setFont(font);
        g2d.setColor(new Color(255, 0, 0, 80)); // 红色,透明度80

        // 计算水印位置
        FontMetrics fontMetrics = g2d.getFontMetrics();
        int x = sourceImage.getWidth() - fontMetrics.stringWidth(watermarkText) - 10;
        int y = sourceImage.getHeight() - fontMetrics.getHeight() + 30;

        // 添加水印
        g2d.drawString(watermarkText, x, y);
        g2d.dispose();

        return sourceImage;
    }

    public BufferedImage cropImage(BufferedImage sourceImage, int x, int y, int width, int height) {
        return sourceImage.getSubimage(x, y, width, height);
    }

    public void saveImage(BufferedImage image...

点击查看剩余70%

我知道答案,我要回答