精华内容
下载资源
问答
  • 主要为大家详细介绍了使用Thumbnails实现图片指定大小压缩,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 将存储库及其所有子模块检出到RetroArch的thumbnails目录中: cd ~/.config/retroarch git clone --recursive --depth=1 http://github.com/libretro-thumbnails/libretro-thumbnails.git thumbnails 更新 要在所有...
  • 使用Thumbnails插件实现对图片的压缩、裁剪、旋转、水印等。 导入项目后修改图片地址和输出图片地址,运行main方法即可看到效果。
  • easy_thumbnails:A powerful, yet easy to implement thumbnailing application for Django 1.4+ 安装 pip install easy_thumbanils 在你的项目中配置 setting.py INSTALLED_APPS中添加 ‘easy_thumbanils’ 如果...
  • thumbnails-carousel-源码

    2021-05-19 08:23:28
    依赖关系:jQuery&bootstrap.js,在其后包括thumbnails.carousel.js。 虽然用户向左或向右滑动,但选择适当的缩略图并更改其不透明度在其他缩略图中不同。 用户还可以单击缩略图以在轮播上显示适当的图像。 选项 ...
  • videojs-vtt-thumbnails Video.js插件,可在进度条悬停时显示缩略图,由外部VTT文件驱动。 基于。 请注意,此插件当前仅支持拼接的缩略图。 注意:插件会在悬停时隐藏默认外观的鼠标显示时间戳。 目录 安装 安装 ...
  • Thumbnails 纯java图片压缩api 包括文档及相关学习资料,算法高效,压缩效率高。
  • Video Thumbnails Maker(视频缩略图制作软件)是一款可以帮助你快速的制作视频文件的缩略图的免费软件,Video Thumbnails Maker可用于家庭视频编目和网络视频共享的支持,程序虽然是英文的,但是非常容易使用,无需做...
  • 在 pubspec.yaml 文件中添加thumbnails作为依赖项。 thumbnails : ^1.0.1 更新 Android 权限 将这些行添加到 AndroidManifest.xml 注意:对于 >= 6.0 的 android 版本,您可能需要在运行时向用户请求权限,...
  • Thumbnails

    千次阅读 2018-03-05 14:17:21
    builder = Thumbnails.of(image).sourceRegion(Positions.CENTER, 400, 300).size(400, 300); } else { builder = Thumbnails.of(image).size(400, 300); } builder.outputFormat("jpg").toFile(toPic); //...

    点击打开原文链接

    jar

            <dependency>
                <groupId>net.coobird</groupId>
                <artifactId>thumbnailator</artifactId>
                <version>0.4.8</version>
            </dependency>

    读取图片源,设置生成文件位置

    import java.io.File;
    import java.io.IOException;
    
    import org.junit.Test;
    
    import net.coobird.thumbnailator.Thumbnails;
    
    public class ThumbTest {
    
    	@Test
    	public void testHandlePicture() throws IOException {
    		File fromPic = new File("E:/pic/测试图片1024px-768px.jpg");//目标图片位置-图片源
    		File toPic = new File("E:/pic/缩小的图片.jpg");	          //生成文件位置
    		File waterPic=new File("picture/水印图片.jpg");            //作为水印的图片

    注意:以上代码程序未结束,由下边粘贴代码不断追加

    按指定大小把图片进行缩放(会遵循原图高宽比例)

    //按指定大小把图片进行缩和放(会遵循原图高宽比例)   
    //此处把图片压成400×500的缩略图  
    Thumbnails.of(fromPic).size(400,500).toFile(toPic);//变为400*300,遵循原图比例缩或放到400*某个高度 


    按照指定比例进行缩小和放大

    //按照比例进行缩小和放大  
    Thumbnails.of(fromPic).scale(0.2f).toFile(toPic);//按比例缩小  
    Thumbnails.of(fromPic).scale(2f);//按比例放大


    按指定的大小进行缩放(不遵循原图比例)

    //不按比例,就按指定的大小进行缩放  
    Thumbnails.of(fromPic).size(100, 100).keepAspectRatio(false).toFile(toPic);  
    //或者Thumbnails.of(fromPic).forceSize(100,100).toFile(toPic);


    图片尺寸不变,压缩图片文件大小

    //图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量  
    Thumbnails.of(fromPic).scale(1f).outputQuality(0.25f).toFile(toPic);

    给图片加水印

    //给图片加水印,watermark(位置,水印图,透明度)Positions.CENTER表示加在中间  
    Thumbnails.of(fromPic).size(400,400)  
    .watermark(Positions.CENTER,ImageIO.read(waterPic),0.5f)  
    .outputQuality(0.8f).toFile(toPic); 

    转换图片格式

    //用outputFormat(图像格式)转换图片格式,保持原尺寸不变  
    Thumbnails.of(fromPic).scale(1f).outputFormat("png")  
    .toFile("picture/png格式的图片.png"); 

    输出成文件流OutputStream

    //输出成文件流OutputStream  
    OutputStream os=new FileOutputStream(toPic);  
    Thumbnails.of(fromPic).size(120,120).toOutputStream(os);  


    输出成BufferedImage

    //输出BufferedImage,asBufferedImage()返回BufferedImage  
    BufferedImage bi=Thumbnails.of(fromPic).size(120,120).asBufferedImage();  
    ImageIO.write(bi,"jpg",toPic);
    //压缩至指定图片尺寸(例如:横400高300),保持图片不变形,多余部分裁剪掉(这个是引的网友的代码)  
    BufferedImage image = ImageIO.read(fromPic);  
    Builder<BufferedImage> builder = null;  
      

    压缩至指定图片尺寸,保持图片不变形,多余部分裁剪掉


    //压缩至指定图片尺寸(例如:横400高300),保持图片不变形,多余部分裁剪掉(这个是引的网友的代码)  
    BufferedImage image = ImageIO.read(fromPic);  
    Builder<BufferedImage> builder = null;  
      
    int imageWidth = image.getWidth();  
    int imageHeitht = image.getHeight();  
    if ((float)300 / 400 != (float)imageWidth / imageHeitht) {  
        if (imageWidth > imageHeitht) {  
            image = Thumbnails.of(fromPic).height(300).asBufferedImage();  
        } else {  
            image = Thumbnails.of(fromPic).width(400).asBufferedImage();  
        }  
        builder = Thumbnails.of(image).sourceRegion(Positions.CENTER, 400, 300).size(400, 300);  
    } else {  
        builder = Thumbnails.of(image).size(400, 300);  
    }  
    builder.outputFormat("jpg").toFile(toPic); 


    //scale			参数是浮点数,大于1表示放大,小于1表示缩小
    //outputQuality		参数是浮点数,质量压缩,0-1之间 
    //keepAspectRatio	在调整尺寸时保持比例,默认为true,如果要剪裁到特定的比例,设置为false即可

    *注意:scale、width|height、size三者不能同时共存,但必须要有一个




    展开全文
  • 前端项目-videojs-thumbnails,video.js的进度条缩略图插件
  • 运行pip install easy-thumbnails 。 将easy_thumbnails添加到您的INSTALLED_APPS设置中: INSTALLED_APPS = ( ... 'easy_thumbnails', ) 运行manage.py migrate easy_thumbnails 。 用法示例 缩略图选项可以在...
  • npm install -g hls-live-thumbnails进行全局安装。 演示版 运行hls-live-thumbnails https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8 。 缩略图生成器 这将从HLS...
  • 经常会碰到需要设置多个日志缩略图的需求,当然我们可以通过自定义字段实现,但是这样使用起来不是非常方便,没有默认的设置特色图片那么好用,这时候,我一般使用 Multiple Post Thumbnails 这个 WordPress 插件来...
  • ST Thumbnails Explorer 是一个功能强大的文件浏览器,据说可以搞定以下格式的文件:Adobe Illustrator V7-10(AI),CorelDRAW V4-11 (CDR,CMX,CCX,CDT,PAT),Macromedia FreeHand V7-10(FH7-10,FT8-10),...
  • flask-thumbnails:为flask框架创建一个缩略图的简单扩展
  • 查看图片工具,可查看AI,EPS,CDR等文件,免去下载大型画图文件的烦恼。 默认解压密码:liehuo.net
  • 缩略图浏览(Xentient Thumbnails) 让图片文件的缩略图显示在资源管理器里的工具 这样缩略图就取代图形文件的图标了,更方便管理和浏览
  • 矢量看图浏览软件ST Thumbnails Explorer破解注册版
  • 再生缩略图高级 根据主题所需的图像尺寸为旧上传的图像生成缩略图-高级功能
  •  Thumbnails.of(str).size(120, 120).keepAspectRatio(false)  .toFile(despath+"/c.png");  }  /**  * 旋转  *   * @throws IOException  */  private void test4() throws IOException {  /**...

    package zk.test;


    import java.awt.p_w_picpath.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;

    import javax.p_w_picpathio.ImageIO;

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

    public class ThumbnailatorTest {

        private static String  str = "D:/zimg/a.png";
        private static String  despath = "D:/zimg/desImg";
        private static File file = null;
        static{
            file = new File(despath);
            if(!file.exists()){
                file.mkdirs();
            }
        }
        /**
         * 
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
            ThumbnailatorTest thumbnailatorTest = new ThumbnailatorTest();
            thumbnailatorTest.test1();
            thumbnailatorTest.test2();
            thumbnailatorTest.test3();
            thumbnailatorTest.test4();
            thumbnailatorTest.test5();
            thumbnailatorTest.test6();
            thumbnailatorTest.test7();
            thumbnailatorTest.test8();
            thumbnailatorTest.test9();
        }

        /**
         * 指定大小进行缩放
         * 
         * @throws IOException
         */
        private void test1() throws IOException {
            /*
             * size(width,height) 若图片横比200小,高比300小,不变
             * 若图片横比200小,高比300大,高缩小到300,图片比例不变 若图片横比200大,高比300小,横缩小到200,图片比例不变
             * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
             */
            Thumbnails.of(str).size(200, 300).toFile(
                    despath+"/a.png");
            Thumbnails.of(str).size(2560, 2048).toFile(
                    despath+"/a1.png");
        }

        /**
         * 按照比例进行缩放
         * 
         * @throws IOException
         */
        private void test2() throws IOException {
            /**
             * scale(比例)
             */
            Thumbnails.of(str).scale(0.25f)
                    .toFile(despath+"/b.png");
            Thumbnails.of(str).scale(1.10f).toFile(
                    despath+"/b1.png");
        }

        /**
         * 不按照比例,指定大小进行缩放
         * 
         * @throws IOException
         */
        private void test3() throws IOException {
            /**
             * keepAspectRatio(false) 默认是按照比例缩放的
             */
            Thumbnails.of(str).size(120, 120).keepAspectRatio(false)
                    .toFile(despath+"/c.png");
        }

        /**
         * 旋转
         * 
         * @throws IOException
         */
        private void test4() throws IOException {
            /**
             * rotate(角度),正数:顺时针 负数:逆时针
             */
            Thumbnails.of(str).size(1280, 1024).rotate(90).toFile(
                    despath+"/d.png");
            Thumbnails.of(str).size(1280, 1024).rotate(-90).toFile(
                    despath+"/d1.png");
        }

        /**
         * 水印
         * 
         * @throws IOException
         */
        private void test5() throws IOException {
            /**
             * watermark(位置,水印图,透明度)
             */
            Thumbnails.of(str).size(1280, 1024).watermark(
                    Positions.BOTTOM_RIGHT,
                    ImageIO.read(new File("D:/zimg/c.png")), 0.5f)
                    .outputQuality(0.8f).toFile(
                            despath+"/e.png");
            Thumbnails.of(str).size(1280, 1024).watermark(
                    Positions.CENTER,
                    ImageIO.read(new File("D:/zimg/c.png")), 0.5f)
                    .outputQuality(0.8f).toFile(despath+"/e1.png");
        }

        /**
         * 裁剪
         * 
         * @throws IOException
         */
        private void test6() throws IOException {
            /**
             * 图片中心400*400的区域
             */
            Thumbnails.of(str).sourceRegion(Positions.CENTER, 400,
                    400).size(200, 200).keepAspectRatio(false).toFile(
                            despath+"/f.png");
            /**
             * 图片右下400*400的区域
             */
            Thumbnails.of(str).sourceRegion(Positions.BOTTOM_RIGHT,
                    400, 400).size(200, 200).keepAspectRatio(false).toFile(
                            despath+"/f1.png");
            /**
             * 指定坐标
             */
            Thumbnails.of(str).sourceRegion(600, 500, 400, 400).size(
                    200, 200).keepAspectRatio(false).toFile(
                            despath+"/f2.png");
        }

        /**
         * 转化图像格式
         * 
         * @throws IOException
         */
        private void test7() throws IOException {
            /**
             * outputFormat(图像格式)
             */
            Thumbnails.of(str).size(1280, 1024).outputFormat("jpeg")
                    .toFile(despath+"/g.jpeg");
            Thumbnails.of(str).size(1280, 1024).outputFormat("gif")
                    .toFile(despath+"/g1.gif");
            
            Thumbnails.of(str).size(1280, 1024).outputFormat("jpg")
                    .toFile(despath+"/g2.jpg");
            Thumbnails.of(str).size(1280, 1024).outputFormat("bmp")
                    .toFile(despath+"/g3.bmp");
        }

        /**
         * 输出到OutputStream
         * 
         * @throws IOException
         */
        private void test8() throws IOException {
            /**
             * toOutputStream(流对象)
             */
            OutputStream os = new FileOutputStream(
                    despath+"/h.gif");
            Thumbnails.of(str).size(1280, 1024).toOutputStream(os);
        }

        /**
         * 输出到BufferedImage
         * 
         * @throws IOException
         */
        private void test9() throws IOException {
            /**
             * asBufferedImage() 返回BufferedImage
             */
            BufferedImage thumbnail = Thumbnails.of(str).size(1280,
                    1024).asBufferedImage();
            
            ImageIO.write(thumbnail, "jpg", new File(
                    despath+"/i.gif"));
        }
    }
     

    展开全文
  • 重新产生缩图 重新生成缩略图是一个WordPress插件,它将为已上传到WordPress媒体库的一个或多个图像重新生成所有缩略图大小。 这对于以下情况很有用: 已添加新的缩略图大小,并且您希望过去的上传内容具有该大小...
  • 这些图像在twitter Réaffiche纪要 Réaffichel'aperçudes Images sur twitter en particulier celle d'instagram 支持语言:Français
  • OTF重新生成缩略图 即时为WordPress重新生成缩略图。 该插件的行为与“类似,不同之处在于,在使用图像时,它们会自动/即时调整大小。 创建后,将不再对其进行处理。 现在,您的缩略图将在以下情况下调整大小: ...
  • Thumbnails的使用

    千次阅读 2019-06-24 12:27:29
    因为项目需要做一个图片的...查看资料看到Thumbnails,于是,对Thumbnails的功能做了一些简单的使用。 这是两张原图,及路径。 public static void test2() throws IOException{ File file = new File(...

    因为项目需要做一个图片的微服务,用到了mongoDB,springboot,springCloud,等。其中因为需要对图片做处理。查看资料看到Thumbnails,于是,对Thumbnails的功能做了一些简单的使用。

    这是两张原图,及路径。

    	public static void test2() throws IOException{
    		File file = new File("E:/图像/juan_/test_s/juan_yts1.jpg");
    		 // 指定坐标
    	       Thumbnails.of(file).sourceRegion(3850, 1500, 600, 2000).size(
    	               600, 2000).keepAspectRatio(false).toFile(
    	            		   "E:/图像/juan_/test_c/juan_backup20.jpg");
    	   
    	}
    
    

    这是裁剪过后的图片

     

    private static void test1() throws FileNotFoundException, IOException{
    		File file = new File("E:/图像/juan_/test_s/xifu_66.jpg");
    		//scale0.3是一个double类型的数字,缩放比例,大于1就是变大,小于1就是缩小
    		//Thumbnails.of(new FileInputStream(file)).scale(0.3).toFile(new File("E:/图像/juan_/juan_buck.jpg"));
    		//按照比例进行缩放
    		Thumbnails.of(file).scale(0.25f).toFile("E:/图像/juan_/test_c/juan_backup1.jpg");
    		Thumbnails.of(file).scale(1.10f).toFile("E:/图像/juan_/test_c/juan_backup2.jpg");
    		
    		//指定大小进行缩放
    		Thumbnails.of(file).size(200, 300).toFile("E:/图像/juan_/test_c/juan_backup3.jpg");
    		Thumbnails.of(file).size(2560, 2048).toFile("E:/图像/juan_/test_c/juan_backup4.jpg");
    		
    		//旋转
    		Thumbnails.of(file).size(1280, 1024).rotate(90).toFile("E:/图像/juan_/test_c/juan_backup5.jpg");
    		Thumbnails.of(file).size(1280, 1024).rotate(-90).toFile("E:/图像/juan_/test_c/juan_backup6.jpg");
    	
    		/**
    		 *       不按照比例,指定大小进行缩放
             * keepAspectRatio(false) 默认是按照比例缩放的
             */
            Thumbnails.of(file).size(120, 120).keepAspectRatio(false).toFile("E:/图像/juan_/test_c/juan_backup7.jpg");
    	
            // 水印 watermark(位置,水印图,透明度)
           Thumbnails.of(file).size(1280, 1024).watermark(Positions.BOTTOM_RIGHT,
                   ImageIO.read(new File("E:/图像/juan_/test_c/juan_backup20.jpg")), 0.5f)
                   .outputQuality(0.8f).toFile("E:/图像/juan_/test_c/juan_backup8.jpg");
           Thumbnails.of(file).size(1280, 1024).watermark(
                   Positions.CENTER,
                   ImageIO.read(new File("E:/图像/juan_/test_c/juan_backup20.jpg")), 0.5f) 
           .outputQuality(0.8f).toFile("E:/图像/juan_/test_c/juan_backup9.jpg");
           
           //裁剪
           // 图片中心400*400的区域  
           Thumbnails.of(file).sourceRegion(Positions.CENTER, 400,
                   400).size(200, 200).keepAspectRatio(false).toFile(
                		   "E:/图像/juan_/test_c/juan_backup10.jpg");
           // 图片右下400*400的区域
           Thumbnails.of(file).sourceRegion(Positions.BOTTOM_RIGHT,
                   400, 400).size(200, 200).keepAspectRatio(false).toFile(
                		   "E:/图像/juan_/test_c/juan_backup11.jpg");
           // 指定坐标
           Thumbnails.of(file).sourceRegion(600, 500, 400, 400).size(
                   200, 200).keepAspectRatio(false).toFile(
                		   "E:/图像/juan_/test_c/juan_backup12.jpg");
       
           //转化图像格式
           /**
            * outputFormat(图像格式)
            */
           Thumbnails.of(file).size(1280, 1024).outputFormat("jpeg")
                   .toFile("E:/图像/juan_/test_c/juan_backup13.jpeg");
           Thumbnails.of(file).size(1280, 1024).outputFormat("gif")
                   .toFile("E:/图像/juan_/test_c/juan_backup14.gif");
           
           Thumbnails.of(file).size(1280, 1024).outputFormat("jpg")
                   .toFile("E:/图像/juan_/test_c/juan_backup15.jpg");
           Thumbnails.of(file).size(1280, 1024).outputFormat("bmp")
                   .toFile("E:/图像/juan_/test_c/juan_backup16.bmp");
    
           //输出到OutputStream
           //toOutputStream(流对象)
           OutputStream os = new FileOutputStream(
        		   "E:/图像/juan_/test_c/juan_backup17.jpg");
           Thumbnails.of(file).size(1280, 1024).toOutputStream(os);
           
           // 输出到BufferedImage
               /**
                * asBufferedImage() 返回BufferedImage
                */
               BufferedImage thumbnail = Thumbnails.of(file).size(1280,
                       1024).asBufferedImage();
               
               ImageIO.write(thumbnail, "jpg", new File(
            		   "E:/图像/juan_/test_c/juan_backup18.jpg"));
    	}

     

     

    水印

    package test;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.UUID;
    
    import javax.imageio.ImageIO;
    
    import net.coobird.thumbnailator.Thumbnails;
    import net.coobird.thumbnailator.Thumbnails.Builder;
    import net.coobird.thumbnailator.geometry.Positions;
    
    public class LiunnTest {
    
    	private static final float PIC_SIZE = 500 * 1024;
    
    	
    	public static void main(String[] args) throws FileNotFoundException, IOException {
    		// TODO Auto-generated method stub
    	
    		test1();
    		
    
    	}

     

    展开全文
  • Thumbnails就是一个很好的图像处理工具,他把复杂的图像处理封装的很好,只需要短短的一行代码就能完成对图像的压缩。Thumbnails支持: 指定大小进行缩放 按照比例进行缩放 不按照比例,指定大

    在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过程中谁顶得住呀!所以在用户发布照片,后端对图像文件进行保存的过程中压缩图像文件是必不可少的一个过程。
    Thumbnails就是一个很好的图像处理工具,他把复杂的图像处理封装的很好,只需要短短的一行代码就能完成对图像的压缩。
    Thumbnails支持:

    • 指定大小进行缩放
    • 按照比例进行缩放
    • 不按照比例,指定大小进行缩放
    • 旋转
    • 水印
    • 裁剪
    • 转化图像格式
    • 输出到OutputStream
    • 输出到BufferedImage
    • 输出到ByteArrayOutputStream(OutputStream)
    • 输出到ByteArrayInputStream(InputStream)
    • 输出到byte[]

    Thumbnails导入依赖

    <dependency>
        <groupId>net.coobird</groupId>
        <artifactId>thumbnailator</artifactId>
        <version>0.4.8</version>
    </dependency>

    一,指定大小进行缩放

    //size(宽度, 高度)  
      
    /*   
     * 若图片横比200小,高比300小,不变   
     * 若图片横比200小,高比300大,高缩小到300,图片比例不变   
     * 若图片横比200大,高比300小,横缩小到200,图片比例不变   
     * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300   
     */   
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(200, 300)  
            .toFile("c:/a380_200x300.jpg");  
      
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(2560, 2048)   
            .toFile("c:/a380_2560x2048.jpg");

    二,单个图片等比例缩放

    File file = new File("c:\\test.png");
     
    Thumbnails.of(new FileInputStream(file)).scale(3.0).toFile(new File("c:\\yyyyy.png"));

       3.0是一个double类型的数字,缩放比例,大于1就是变大,小于1就是缩小

    三,不按照比例,指定大小进行缩放

    //keepAspectRatio(false) 默认是按照比例缩放的  
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(200, 200)   
            .keepAspectRatio(false)   
            .toFile("c:/a380_200x200.jpg");  

    四,批量产生缩略图

    Thumbnails.of(new File("D:\\pics").listFiles()).scale(0.2).outputFormat("png")
     
    .toFiles(Rename.PREFIX_DOT_THUMBNAIL);

    五,控制图片质量,图片尺寸不变

    File fromPic = new File("C:\\Users\\Administrator\\Desktop\\IdCardPositive_987136936_1531741954688.jpeg");
    File toPic =new File("C:\\Users\\Administrator\\Desktop\\IdCardPositive_987136936_08.jpeg");
    Thumbnails.of(fromPic).scale(1f).outputQuality(0.25f).toFile(toPic);  

    outputQuality就是用来控制图片质量的

    六,给图片加水印

    Thumbnails.of(fromPic).scale(0.8)
              .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(waterPic), 0.5f)
              .outputQuality(0.8f).toFile(toPic);
     
    //watermark(位置,水印图,透明度)  
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(1280, 1024)  
            .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("images/watermark.png")), 0.5f)   
            .outputQuality(0.8f)   
            .toFile("c:/a380_watermark_bottom_right.jpg");  
      
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(1280, 1024)  
            .watermark(Positions.CENTER, ImageIO.read(new File("images/watermark.png")), 0.5f)   
            .outputQuality(0.8f)   
            .toFile("c:/a380_watermark_center.jpg");  

    fromPic是原图,waterPic是水印图片,toPic是生成后的图片

    七,旋转图片

    Thumbnails.of(fromPic).scale(0.5).rotate(90).toFile(toPic);  

    八,图片裁剪

    Thumbnails.of(fromPic).sourceRegion(Positions.CENTER, 300, 300).scale(1.0).toFile(toPic);
     
    //sourceRegion()  
      
    //图片中心400*400的区域  
    Thumbnails.of("images/a380_1280x1024.jpg")  
            .sourceRegion(Positions.CENTER, 400,400)  
            .size(200, 200)  
            .keepAspectRatio(false)   
            .toFile("c:/a380_region_center.jpg");  
      
    //图片右下400*400的区域  
    Thumbnails.of("images/a380_1280x1024.jpg")  
            .sourceRegion(Positions.BOTTOM_RIGHT, 400,400)  
            .size(200, 200)  
            .keepAspectRatio(false)   
            .toFile("c:/a380_region_bootom_right.jpg");  
      
    //指定坐标  
    Thumbnails.of("images/a380_1280x1024.jpg")  
            .sourceRegion(600, 500, 400, 400)  
            .size(200, 200)  
            .keepAspectRatio(false)   
            .toFile("c:/a380_region_coord.jpg");  

    九,WEB输出流图片

    某些应用上传的图片可能质量比较高,但是用户在列表浏览的时候,又不想原图展示,因为带宽要求较高,此时可以降低图片质量(上面提到的outputQuality),以outputstream输出流的方式response给浏览器去展示

    @RequestMapping("/getImages")
        public void getImages(HttpServletRequest request, HttpServletResponse response) throws IOException {
            Thumbnails.of("images/a380_1280x1024.jpg").
                    scale(1f).
                    outputQuality(0.5f).
                    outputFormat("jpg").toOutputStream(response.getOutputStream());
        }

    十,图像的格式转换

    //outputFormat(图像格式)  
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(1280, 1024)  
            .outputFormat("png")   
            .toFile("c:/a380_1280x1024.png");   
      
    Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(1280, 1024)  
            .outputFormat("gif")   
            .toFile("c:/a380_1280x1024.gif");   

    十一,输出到BufferedImage

    //asBufferedImage() 返回BufferedImage  
    BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")   
            .size(1280, 1024)  
            .asBufferedImage();  
     
    ImageIO.write(thumbnail, "jpg", new File("c:/a380_1280x1024_BufferedImage.jpg"));   

    十二,输出到ByteArrayOutputStream(OutputStream)

    ByteArrayOutputStream thumbnailOutputStream = new ByteArrayOutputStream();
    Thumbnails.of("images/a380_1280x1024.jpg").
                            scale(1f).
                            outputQuality(0.5f).
                            outputFormat("jpg").toOutputStream(thumbnailOutputStream);

    十三,输出到ByteArrayInputStream(InputStream)

    ByteArrayOutputStream thumbnailOutputStream = new ByteArrayOutputStream();
    Thumbnails.of("images/a380_1280x1024.jpg").
                            scale(1f).
                            outputQuality(0.5f).
                            outputFormat("jpg").toOutputStream(thumbnailOutputStream);
    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(thumbnailOutputStream.toByteArray());

    十三,输出到byte[]

    ByteArrayOutputStream handlerOutputStream = new ByteArrayOutputStream();
                    Thumbnails.of(inputStream).
                            scale(1f).
                            outputQuality(0.25f).
                            outputFormat("jpg").toOutputStream(handlerOutputStream);
    byte[] bytes = handlerOutputStream.toByteArray();


    展开全文
  • Thumbnails 处理图片

    2019-06-24 17:05:29
    博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):Thumbnails 处理图片Java图片处理开源框架java使用google开源工具实现图片压缩Thumbnails //原图 1056 2272 &Am neil tu ...
  • Thumbnails.of(source).scale(scale).outputFormat(suffix).toFile(output); } /** * 按照比例进行缩放(图片文件) * * @param source * 输入源 * @param output * 输出源 * @param scale * ...
  • Thumbnails使用

    2019-08-17 09:33:46
    Thumbnails使用 在开发java是,使用Thumbnails工具类能帮助我们对图片进行很好的处理,Thumbnails对图片的操作进行了很好的封装。 使用步骤 导入jar包 <dependency> <groupId>net.coobird</...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,291
精华内容 6,116
关键字:

thumbnails