码迷,mamicode.com
首页 > 编程语言 > 详细

使用第三方工具(thumbnailator非java自带API)处理图片大小,尺寸, 添加水印

时间:2016-07-31 17:24:51      阅读:2261      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

thumbnailator-0.4.8目前是最新的jar

code:

package yingyue;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;

public class HandlerImg {

    private static String fromPic = "from/1600x1200-Asia EMEA.jpg";
    private static String toPic = "to/";
    public static void main(String[] args){
        try {
            /* 按指定大小把图片进行缩放(会遵循原图高宽比例)*/
            Thumbnails.of(fromPic).
                size(100, 200).
                toFile(toPic + "/new1.jpg");//变为400*300,遵循原图比例缩或放到400*某个高度
            
            /* 按照指定比例进行缩小和放大 */
            Thumbnails.of(fromPic).
                scale(0.2f).
                toFile(toPic + "/new2_small.jpg");//按比例缩小
            Thumbnails.of(fromPic).
                scale(2f).
                toFile(toPic + "/new2_large.jpg");//按比例放大
            
            /* 图片尺寸不变,压缩图片文件大小 */
            Thumbnails.of(fromPic).
                scale(1f).
                outputQuality(0.25f).
                toFile(toPic + "/new3.jpg");// 图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量
            
            /* 图片旋转 rotate(角度),正数:顺时针负数:逆时针 */
            Thumbnails.of(fromPic)  
            .size(1280,1024)  
            .rotate(90)  
            .toFile(toPic + "/new4.jpg");
            
            /* 水印 watermark(位置,水印图,透明度) */
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .watermark(Positions.BOTTOM_RIGHT,ImageIO.read(new File("from/ss.png")),0.8f)
                .outputQuality(0.8f)
                .toFile(toPic + "/new5-1.jpg");
              
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .watermark(Positions.CENTER,ImageIO.read(new File("from/ss.png")),0.5f)
                .outputQuality(0.8f)
                .toFile(toPic + "/new5-2.jpg");
            
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .watermark(Positions.TOP_LEFT,ImageIO.read(new File("from/ss.png")),0.9f)
                .outputQuality(0.8f)
                .toFile(toPic + "/new5-3.jpg");
            
            /* 裁剪 */
            Thumbnails.of(fromPic)  
                .sourceRegion(Positions.CENTER,400,400)
                .size(200,200)
                .keepAspectRatio(false)
                .toFile(toPic + "/new6-1.jpg");
              
            //图片右下400*400的区域
            Thumbnails.of(fromPic)
                .sourceRegion(Positions.BOTTOM_RIGHT,400,400)
                .size(200,200)
                .keepAspectRatio(false)
                .toFile(toPic + "/new6-2.jpg");
              
            //指定坐标 
            Thumbnails.of(fromPic)
                .sourceRegion(600,500,400,400)
                .size(200,200)
                .keepAspectRatio(false)
                .toFile(toPic + "/new6-3.jpg");

            /* 转化图像格式 */
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .outputFormat("png")
                .toFile(toPic + "/new7-1");
          
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .outputFormat("gif")
                .toFile(toPic + "/new7-2");
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

package yingyue;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.imageio.ImageIO;

import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;

public class TestImg {

    private static String fromPic = "from/1600x1200-Asia EMEA.jpg";
    private static String toPic = "to/";
    public static void main(String[] args){
        try {
            /* 按指定大小把图片进行缩放(会遵循原图高宽比例)*/
            Thumbnails.of(fromPic).
                size(100, 200).
                toFile(toPic + "/new1.jpg");//变为400*300,遵循原图比例缩或放到400*某个高度
            
            /* 按照指定比例进行缩小和放大 */
            Thumbnails.of(fromPic).
                scale(0.2f).
                toFile(toPic + "/new2_small.jpg");//按比例缩小
            Thumbnails.of(fromPic).
                scale(2f).
                toFile(toPic + "/new2_large.jpg");//按比例放大
            
            /* 图片尺寸不变,压缩图片文件大小 */
            Thumbnails.of(fromPic).
                scale(1f).
                outputQuality(0.25f).
                toFile(toPic + "/new3.jpg");// 图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量
            
            /* 图片旋转 rotate(角度),正数:顺时针负数:逆时针 */
            Thumbnails.of(fromPic)  
            .size(1280,1024)  
            .rotate(90)  
            .toFile(toPic + "/new4.jpg");
            
            /* 水印 watermark(位置,水印图,透明度) */
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .watermark(Positions.BOTTOM_RIGHT,ImageIO.read(new File("from/ss.png")),0.8f)
                .outputQuality(0.8f)
                .toFile(toPic + "/new5-1.jpg");
              
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .watermark(Positions.CENTER,ImageIO.read(new File("from/ss.png")),0.5f)
                .outputQuality(0.8f)
                .toFile(toPic + "/new5-2.jpg");
            
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .watermark(Positions.TOP_LEFT,ImageIO.read(new File("from/ss.png")),0.9f)
                .outputQuality(0.8f)
                .toFile(toPic + "/new5-3.jpg");
            
            /* 裁剪 */
            Thumbnails.of(fromPic)  
                .sourceRegion(Positions.CENTER,400,400)
                .size(200,200)
                .keepAspectRatio(false)
                .toFile(toPic + "/new6-1.jpg");
              
            //图片右下400*400的区域
            Thumbnails.of(fromPic)
                .sourceRegion(Positions.BOTTOM_RIGHT,400,400)
                .size(200,200)
                .keepAspectRatio(false)
                .toFile(toPic + "/new6-2.jpg");
              
            //指定坐标
            Thumbnails.of(fromPic)
                .sourceRegion(600,500,400,400)
                .size(200,200)
                .keepAspectRatio(false)
                .toFile(toPic + "/new6-3.jpg");

            /* 转化图像格式 */
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .outputFormat("png")
                .toFile(toPic + "/new7-1");
          
            Thumbnails.of(fromPic)
                .size(1280,1024)
                .outputFormat("gif")
                .toFile(toPic + "/new7-2");
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用第三方工具(thumbnailator非java自带API)处理图片大小,尺寸, 添加水印

标签:

原文地址:http://www.cnblogs.com/YingYue/p/5723352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!