thumbnailator图片工具包

thumbnailator是一个开源的图片工具包,提供诸如图片缩放、裁剪、旋转、加水印等一些列功能,简单好用

项目地址:https://github.com/coobird/thumbnailator

最新版本为 0.4.8:

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>
package com.sean;

import net.coobird.thumbnailator.Thumbnailator;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.builders.BufferedImageBuilder;
import net.coobird.thumbnailator.geometry.Position;
import net.coobird.thumbnailator.geometry.Positions;

import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * Created by seanzou on 2017/3/31.
 */
public class ImageUtil {
    public static void main(String[] args) throws Exception {
        File file = new File("d:\\in.jpg");

        // 转换图片格式为png
        Thumbnails.of(file)
                .scale(1)
                .outputFormat("png")
                .toFile(new File("d:\\out.png"));

        // 图片放大2倍,像素由700*1050变为1400*2100
        Thumbnails.of(file)
                .scale(2)
                .toFile(new File("d:\\magnify.jpg"));

        // 图片缩小至1/4,像素由700*1050变为175*263
        Thumbnails.of(file)
                .scale(0.25)
                .toFile(new File("d:\\shrink.jpg"));

        // 图片剪裁, 横向偏移量,纵向偏移量,宽,高
        Thumbnails.of(file)
                .sourceRegion(100, 100, 550, 550)
                .scale(1)
                .toFile(new File("d:\\head.jpg"));

        // 旋转, 正数顺时针旋转,负数逆时针旋转
        Thumbnails.of(file)
                .rotate(-90)
                .size(400,400)
                .keepAspectRatio(false)         // 忽略原图比例,强制转换为size设置的像素
                .toFile(new File("d:\\rotate.jpg"));



        // 创建水印图片
        // 后面的两个参数用来校验水印图片的像素,所以必须和水印的像素保持一致
        // 否则将会导致水印的添加失败
        BufferedImage image = Thumbnailator.createThumbnail(
                new File("d:\\wm.jpg"), 300, 300);

        // 添加水印
        FileInputStream in = new FileInputStream(file);
        FileOutputStream out = new FileOutputStream(new File("d:\\watermark.jpg"));

        Thumbnails.of(in)
                .watermark(Positions.CENTER, image , 0.5f)  // 水印位置,水印图片,透明度
                .scale(1)
                .toOutputStream(out);
    }
}

猜你喜欢

转载自blog.csdn.net/a19881029/article/details/68925751
今日推荐