class="link_title">Java生成缩略图Thumbnailator(转载)
2012-08-14 20:09?
454人阅读??
收藏?
举报
javacapios
转至:http://rensanning.iteye.com/blog/1545708
?
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。
http://code.google.com/p/thumbnailator/
版本:thumbnailator-0.4.2.jar
原图如下:
1、指定大小进行缩放
Java代码 ?
- ??
- ??
- ?
- ?
- ?
- ?
- ?
- ???
- 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、按照比例进行缩放
Java代码 ?
- ??
- 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、不按照比例,指定大小进行缩放
Java代码 ?
- ??
- Thumbnails.of("images/a380_1280x1024.jpg")???
- ????????.size(200,?200)???
- ????????.keepAspectRatio(false)???
- ????????.toFile("c:/a380_200x200.jpg");??
4、旋转
Java代码 ?
- ??
- 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、水印
Java代码 ?
- ??
- 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、裁剪
Java代码 ?
- ??
- ??
- ??
- Thumbnails.of("images/a380_1280x1024.jpg")??
- ????????.sourceRegion(Positions.CENTER,?400,400)??
- ????????.size(200,?200)??
- ????????.keepAspectRatio(false)???
- ????????.toFile("c:/a380_region_center.jpg");??
- ??
- ??
- 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、转化图像格式
Java代码 ?
- ??
- 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
Java代码 ?
- ??
- OutputStream?os?=?new?FileOutputStream("c:/a380_1280x1024_OutputStream.png");??
- Thumbnails.of("images/a380_1280x1024.jpg")???
- ????????.size(1280,?1024)??
- ????????.toOutputStream(os);??
9、输出到BufferedImage
Java代码 ?
- ??
- BufferedImage?thumbnail?=?Thumbnails.of("images/a380_1280x1024.jpg")???
- ????????.size(1280,?1024)??
- ????????.asBufferedImage();??
- ImageIO.write(thumbnail,?"jpg",?new?File("c:/a380_1280x1024_BufferedImage.jpg"));???
-