ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java图像处理Thumbnails库的使用

2019-06-13 17:49:03  阅读:221  来源: 互联网

标签:Java Thumbnails 缩放 Builder watermark 图像处理 var1 图片


Java图像处理Thumbnails库的使用


Thumbnails简介

Thumbnailator是一个优秀的图片处理的Google开源类库,处理图片效果比Java API的好,可以用于图片缩放,裁剪,加水印等。目前任不断更新。质量比较有保证。

Maven引入

我们在使用一下的语句来引入Thumbnails库

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

Thumbnails加载图片

Thumbnails加载图片支持多样化形式。有以下的集中

  • URL数组
  • File数组
  • String文件全路径数组
  • BufferedImage数组
  • InputStream数组

按照比例缩放图片

 Thumbnails.of(path)
                .scale(0.5)
                .toFile(tmepPath);

执行上述代码,图片会被缩小50%。scale(double):是缩略图的缩放系数。取值范围是[0,1]。
如果我们不想按照比例缩放图片,也可以指定具体的大小来缩放图片

 Thumbnails.of(path)
                .size(200,200)
                .toFile(tmepPath);

需要注意的一点就是scale()和size()不能同时使用

保持长宽比例缩放图片

Thumbnails有一个方法keepAspectRatio()方法是用来保持图片的长宽比例,默认为true,如果设置成false。强行输出的话,会造成图片可能会变形。

 Thumbnails.of(path)
                 .size(160,160)
                 .keepAspectRatio(false)
               .toFile(tempPath);

上述代码中,如果原图不是正方形,则输出依旧为160160,但是图片会变形。
但如果在keepAspectRatio()在默认情况下,原图是正方形,则输出图片正常为160
160。

添加水印

添加水印主要用到watermark()方法。watermaker的方法签名入下所示

 public Thumbnails.Builder<T> watermark(Watermark var1)

简单的加水印的方法。Watermark是Thumbnails内置的一个类,类的成员包括,位置,图片,缩放的大小。通常指定了一个Watermarker类也就指定了水印大小和位置。

public Thumbnails.Builder<T> watermark(BufferedImage var1)

只有一个BufferedImage参数,也就是将该水印图片覆盖到目标图片中,默认居中

 public Thumbnails.Builder<T> watermark(BufferedImage var1, float var2) 

指定大小的水印

 public Thumbnails.Builder<T> watermark(Position var1, BufferedImage var2, float var3)

指定大小和位置的水印

File watermark = new File("water.png");
BufferedImage watermarkBufferedImage = Thumbnails.of(watermark).scale(1.0).outputQuality(1.0).asBufferedImage();
Thumbnails.of("pic.jpg")
    .scale(1)
    .watermark(Positions.TOP_RIGHT, watermarkBufferedImage, 1.0f)
    .toFile("pic2.jpg");

裁剪图片

裁剪图片的方法

Thumbnails.Builder<T> sourceRegion(int var1, int var2, int var3, int var4) 
public Thumbnails.Builder<T> sourceRegion(Position var1, int var2, int var3)
 public Thumbnails.Builder<T> sourceRegion(Rectangle var1)

标签:Java,Thumbnails,缩放,Builder,watermark,图像处理,var1,图片
来源: https://www.cnblogs.com/NaCl/p/11018202.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有