广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Java缩略图生成库之Thumbnailator应用说明

    2018-11-02 13:11:47 次阅读 稿源:互联网
    零七广告

    Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。

    版本:thumbnailator-0.4.2.jar

    原图如下:


    1、指定大小进行缩放
    代码如下:

    //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");


    2、按照比例进行缩放
    代码如下:

    //scale(比例)
    Thumbnails.of("images/a380_1280x1024.jpg")
    .scale(0.25f)
    .toFile("c:/a380_25%.jpg");

    Thumbnails.of("images/a380_1280x1024.jpg")
    .scale(1.10f)
    .toFile("c:/a380_110%.jpg");


    3、不按照比例,指定大小进行缩放
    代码如下:

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


    4、旋转
    代码如下:

    //rotate(角度),正数:顺时针 负数:逆时针
    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(1280, 1024)
    .rotate(90)
    .toFile("c:/a380_rotate+90.jpg");

    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(1280, 1024)
    .rotate(-90)
    .toFile("c:/a380_rotate-90.jpg");



    5、水印
    代码如下:

    //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");



    6、裁剪
    代码如下:

    //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");



    7、转化图像格式
    代码如下:

    //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");


    8、输出到OutputStream
    代码如下:

    //toOutputStream(流对象)
    OutputStream os = new FileOutputStream("c:/a380_1280x1024_OutputStream.png");
    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(1280, 1024)
    .toOutputStream(os);


    9、输出到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"));


    大小: 20.7 KB

    大小: 1.1 KB

    大小: 2.3 KB

    大小: 2.2 KB

    大小: 23.2 KB

    大小: 23.3 KB

    大小: 27.9 KB

    大小: 27 KB

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告