Java图片处理工具类库推荐---ThumbNailtor
2016-07-29 22:44
441 查看
前一阵子,做公司OA系统开发时,需要上传个人图片作为个人头像,但是每个人上传的图片像素大小不统一,所以需要对图片进行处理,偶然发现了一个广泛使用的类库。
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。
首先,maven引用:
<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
然后就可以通过这个类库来操作图片了,非常方便简单。
//原图像素 1024*682
//缩放
Thumbnails.of(path+"/image/blue.jpg").size(100, 100).toFile(path+"/thumb/thumb_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").size(2560, 2048).toFile(path+"/thumb/thumb_large_blue.jpg");
//按照比例缩放
Thumbnails.of(path+"/image/blue.jpg").scale(0.7).toFile(path+"/thumb/thumb_0.7_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").scale(1.2).toFile(path+"/thumb/thumb_1.2_blue.jpg");
//keepAspectRatio(false) 默认是按照比例缩放的
Thumbnails.of(path+"/image/blue.jpg").size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_noscale_blue.jpg");
//旋转
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).rotate(90).toFile(path+"/thumb/thumb_rotate90_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).rotate(-90).toFile(path+"/thumb/thumb_rotate-90_blue.jpg");
//水印
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File(path+"/image/baidu.png")), 0.5f).toFile(path+"/thumb/thumb_watermarkbr_blue.jpg");;
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).watermark(Positions.CENTER, ImageIO.read(new File(path+"/image/baidu.png")), 0.8f).toFile(path+"/thumb/thumb_watermarkc_blue.jpg");
//裁剪
Thumbnails.of(path+"/image/blue.jpg").sourceRegion(Positions.CENTER, 400,400).size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_regioncenter_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").sourceRegion(Positions.BOTTOM_RIGHT, 400,400).size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_regionbr_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").sourceRegion(650 , 500 , 400 , 400).size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_realregion_blue.jpg");
//转换图像格式
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).outputFormat("png").toFile(path+"/thumb/thumb_blue.png");
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).outputFormat("gif").toFile(path+"/thumb/thumb_blue.gif");
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).outputFormat("JPEG").toFile(path+"/thumb/thumb_blue.jpeg");
//输出到outputstream中
OutputStream outputStream = new FileOutputStream(new File(path+"/thumb/thumb_output_blue.gif"));
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).toOutputStream(outputStream);
//
//asBufferedImage() 返回BufferedImage
BufferedImage thumbnail = Thumbnails.of(path+"/image/blue.jpg")
.size(1024, 682)
.asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File(path+"/thumb/thumb_bufferedImage_output_blue.gif"));
其中path是类的相对路径,操作是不是很简单。
收着以后需求中可以使用,参照http://blog.csdn.net/yhhazr/article/details/7866491
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。
首先,maven引用:
<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
然后就可以通过这个类库来操作图片了,非常方便简单。
//原图像素 1024*682
//缩放
Thumbnails.of(path+"/image/blue.jpg").size(100, 100).toFile(path+"/thumb/thumb_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").size(2560, 2048).toFile(path+"/thumb/thumb_large_blue.jpg");
//按照比例缩放
Thumbnails.of(path+"/image/blue.jpg").scale(0.7).toFile(path+"/thumb/thumb_0.7_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").scale(1.2).toFile(path+"/thumb/thumb_1.2_blue.jpg");
//keepAspectRatio(false) 默认是按照比例缩放的
Thumbnails.of(path+"/image/blue.jpg").size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_noscale_blue.jpg");
//旋转
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).rotate(90).toFile(path+"/thumb/thumb_rotate90_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).rotate(-90).toFile(path+"/thumb/thumb_rotate-90_blue.jpg");
//水印
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File(path+"/image/baidu.png")), 0.5f).toFile(path+"/thumb/thumb_watermarkbr_blue.jpg");;
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).watermark(Positions.CENTER, ImageIO.read(new File(path+"/image/baidu.png")), 0.8f).toFile(path+"/thumb/thumb_watermarkc_blue.jpg");
//裁剪
Thumbnails.of(path+"/image/blue.jpg").sourceRegion(Positions.CENTER, 400,400).size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_regioncenter_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").sourceRegion(Positions.BOTTOM_RIGHT, 400,400).size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_regionbr_blue.jpg");
Thumbnails.of(path+"/image/blue.jpg").sourceRegion(650 , 500 , 400 , 400).size(200, 200).keepAspectRatio(false).toFile(path+"/thumb/thumb_realregion_blue.jpg");
//转换图像格式
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).outputFormat("png").toFile(path+"/thumb/thumb_blue.png");
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).outputFormat("gif").toFile(path+"/thumb/thumb_blue.gif");
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).outputFormat("JPEG").toFile(path+"/thumb/thumb_blue.jpeg");
//输出到outputstream中
OutputStream outputStream = new FileOutputStream(new File(path+"/thumb/thumb_output_blue.gif"));
Thumbnails.of(path+"/image/blue.jpg").size(1024, 682).toOutputStream(outputStream);
//
//asBufferedImage() 返回BufferedImage
BufferedImage thumbnail = Thumbnails.of(path+"/image/blue.jpg")
.size(1024, 682)
.asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File(path+"/thumb/thumb_bufferedImage_output_blue.gif"));
其中path是类的相对路径,操作是不是很简单。
收着以后需求中可以使用,参照http://blog.csdn.net/yhhazr/article/details/7866491
相关文章推荐
- Java_图片处理_02_图片处理工具类库
- 软件开发工具推荐:ZeroTurnaround ZIP 类库(java zip/unzip)
- java图片文件处理工具【剪切,缩放】
- 自己封装的一个Java版图片工具,具备压缩,伸缩变换,透明处理,格式转换等功能.
- 推荐免费小巧图片大小处理工具--Image Resizer for Windows
- Javc处理图片各种效果的类库Java Image Filters
- java图片处理工具之-ImageMagick+jmagick(一)
- 处理PSD等图像的Java工具类库
- Java图片处理的类库:SimpleImage
- java中处理图片的类库
- java图片处理工具之-ImageMagick+jmagick(二)
- 【JAVA】java图片处理类库Thumbnails使用教程,图片缩放、裁剪、旋转、压缩
- Java图片处理的类库:SimpleImage
- Java使用google的thumbnailator工具对图片压缩水印等做处理
- 【JAVA】java图片处理类库Thumbnails使用教程,图片缩放、裁剪、旋转、压缩
- GraphicsMagick +im4java高并发处理大型网站图片工具-图片剪切、遮蔽、水印添加之环境搭建
- Java图片处理的类库:SimpleImage
- java图片处理工具
- 推荐免费小巧图片大小处理工具--Image Resizer for Windows
- java图片处理工具之-ImageMagick+jmagick(二)