Im4java + ImageMagick 缩略图补白加边

本文介绍如何使用Maven引入Im4Java库,并提供了一个实用的工具类示例,用于图片处理,包括生成缩略图、补白和加边等功能。详细展示了依赖配置及ImageMagick的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入maven

Im4java的当前最新版本是1.4.0

        <dependency>
			<groupId>org.im4java</groupId>
			<artifactId>im4java</artifactId>
			<version>1.4.0</version>
		</dependency>

工具类

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

import org.im4java.core.CompositeCmd;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
import org.im4java.core.IdentifyCmd;
import org.im4java.core.ImageCommand;
import org.im4java.process.ArrayListOutputConsumer;

public class Im4JavaUtils {

    private static final String IMAGE_MAGICK_PATH = "D:\\Program Files\\ImageMagick-7.0.8-Q16";//ImageMagick安装路径

    enum CommandType{

        convert("转换处理"),composite("图片合成"),identify("图片信息"),;
        private String name;

        CommandType(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

    }

    private static ImageCommand getImageCommand(CommandType command) {
        ImageCommand cmd = null;
        switch (command) {
            case convert:
                cmd = new ConvertCmd();
                break;
            case composite:
                cmd = new CompositeCmd();
                break;
            case identify:
                cmd = new IdentifyCmd();
                break;
        }
        if (cmd != null) {
            cmd.setSearchPath(IMAGE_MAGICK_PATH);
        }
        return cmd;
    }

   
    /**
     * 生成1.缩略图 2.补白 3.加边
     * @param srcImagePath 源图路径
     * @param newImagePath 新图路径
     * @param width  新图宽
     * @param hight 新图高
     * @return
     */
    public static boolean convertYcThumbImage(String srcImagePath, String newImagePath,int width,int hight) {

        try {
            IMOperation op = new IMOperation();
            op.addImage(srcImagePath);
            op.thumbnail(width, hight)//生成的缩略图宽高
            .gravity("center").extent(width,hight)//补白的宽高(两个使用同一个变量是因为图片缩放后不一定是你需要的宽高,补白相当于背景图缩放后的图片会在背景图中间)
            .background("#ffffff")//背景色
            .border(1)//边框
            .bordercolor("#666666");//边框色
            op.addImage(newImagePath);
            ImageCommand convert = getImageCommand(CommandType.convert);
            convert.run(op);
            System.out.println("压缩图片成功");
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;

    }

}

下面附上两篇参考文章 

安装参考

报错,或者其他方法可以参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值