Java图片处理

来源:互联网 发布:电子数据交换 过时 编辑:程序博客网 时间:2024/06/05 19:01

Java图片处理 - 缩放图片

Java原生代码实现缩放图片

上一章原生代码中执行测试代码:

     public static void main(String[] args) {         /*这儿填写你存放要缩小图片的文件夹全地址*/        String src = "C:/test2.jpg" ;        /*这儿填写你转化后的图片存放的文件夹*/        String tar = "C:/test2_width_200.jpg";        /* 根据宽度缩放 */        ImageUtil.widthCutting(src, tar, 200);    }

具体实现可以看一下以下代码:

    /* 原始图像的宽度和高度 */    int width = im.getWidth();    int height = im.getHeight();    //计算压缩比例    float resizeTimes = (float)targetWidth / (float)width;    BigDecimal bd  =   new  BigDecimal((double)resizeTimes);    // (1:小数点位数, 4:表示四舍五入,可以选择其他舍值方式,例如去尾等等.    bd   =  bd.setScale(1 ,4);     resizeTimes   =  bd.floatValue();    /* 调整后的图片的宽度和高度 - 按照压缩比例计算出新的宽度和高度 */    int toWidth = (int) (width * resizeTimes);    int toHeight = (int) (height * resizeTimes);    /* 新生成结果图片 */    result = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB);    result.getGraphics().drawImage( im.getScaledInstance(toWidth, toHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);

最核心的是将图片按比例进行缩小,如果你只想缩小50%,那么你就可以直接将resizeTimes设置成0.5f,然后去计算最终宽高。

使用im4java调用ImageMagick缩放图片

上面的一堆计算是不是很麻烦,其实有更简单的方式,就是用im4java调用第三方库实现,处理跟方便

测试代码:

public static void main(String[] args) throws Exception {    String src = "c:/test2.jpg";    String target = "c:/test2_70_ratio.jpg";    resizeImage(src, target, "70%");    System.out.println("完成");}
/** * 改变图片大小比例 * @param path 原文件路径 * @param des 目标文件路径 * @param ratio 缩放比例 * @throws Exception */public static void resizeImage(String path, String des, String ratio) throws Exception {//        创建目标文件    createDirectory(des);    IMOperation op = new IMOperation();    op.addImage(path);    op.addRawArgs(ratio);    op.addImage(des);    ConvertCmd cmd = (ConvertCmd) getImageCommand("convert");    cmd.run(op);}

大家还可以参考我专栏中的其他文章:
(1)Java图片处理 - 安装ImageMagick库使用convert命令
(2)Java图片处理 - 创建工具类
(3)Java图片处理 - 复制
(4)Java图片处理 - 缩放图片
(5)Java图片处理 - gif图获取一帧图片

0 0
原创粉丝点击