Java生成缩略图Thumbnailator_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java生成缩略图Thumbnailator

Java生成缩略图Thumbnailator

 2013/7/15 12:16:25  javaWolf_1  程序员俱乐部  我要评论(0)
  • 摘要:Java生成缩略图Thumbnailator(转载)2012-08-1420:09454人阅读评论(0)收藏举报javacapios转至:http://rensanning.iteye.com/blog/1545708Thumbnailator是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。http
  • 标签:Java

class="link_title">Java生成缩略图Thumbnailator(转载)

?454人阅读?评论(0)?收藏?举报 javacapios

转至:http://rensanning.iteye.com/blog/1545708

?

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

http://code.google.com/p/thumbnailator/

版本:thumbnailator-0.4.2.jar

原图如下:



1、指定大小进行缩放

Java代码 ?收藏代码
  1. //size(宽度,?高度)??
  2. ??
  3. /*???
  4. ?*?若图片横比200小,高比300小,不变???
  5. ?*?若图片横比200小,高比300大,高缩小到300,图片比例不变???
  6. ?*?若图片横比200大,高比300小,横缩小到200,图片比例不变???
  7. ?*?若图片横比200大,高比300大,图片按比例缩小,横为200或高为300???
  8. ?*/???
  9. Thumbnails.of("images/a380_1280x1024.jpg")???
  10. ????????.size(200,?300)??
  11. ????????.toFile("c:/a380_200x300.jpg");??
  12. ??
  13. Thumbnails.of("images/a380_1280x1024.jpg")???
  14. ????????.size(2560,?2048)???
  15. ????????.toFile("c:/a380_2560x2048.jpg");??



2、按照比例进行缩放

Java代码 ?收藏代码
  1. //scale(比例)??
  2. Thumbnails.of("images/a380_1280x1024.jpg")???
  3. ????????.scale(0.25f)??
  4. ????????.toFile("c:/a380_25%.jpg");??
  5. ??
  6. Thumbnails.of("images/a380_1280x1024.jpg")???
  7. ????????.scale(1.10f)??
  8. ????????.toFile("c:/a380_110%.jpg");??



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

Java代码 ?收藏代码
  1. //keepAspectRatio(false)?默认是按照比例缩放的??
  2. Thumbnails.of("images/a380_1280x1024.jpg")???
  3. ????????.size(200,?200)???
  4. ????????.keepAspectRatio(false)???
  5. ????????.toFile("c:/a380_200x200.jpg");??



4、旋转

Java代码 ?收藏代码
  1. //rotate(角度),正数:顺时针?负数:逆时针??
  2. Thumbnails.of("images/a380_1280x1024.jpg")???
  3. ????????.size(1280,?1024)??
  4. ????????.rotate(90)???
  5. ????????.toFile("c:/a380_rotate+90.jpg");???
  6. ??
  7. Thumbnails.of("images/a380_1280x1024.jpg")???
  8. ????????.size(1280,?1024)??
  9. ????????.rotate(-90)???
  10. ????????.toFile("c:/a380_rotate-90.jpg");???




5、水印

Java代码 ?收藏代码
  1. //watermark(位置,水印图,透明度)??
  2. Thumbnails.of("images/a380_1280x1024.jpg")???
  3. ????????.size(1280,?1024)??
  4. ????????.watermark(Positions.BOTTOM_RIGHT,?ImageIO.read(new?File("images/watermark.png")),?0.5f)???
  5. ????????.outputQuality(0.8f)???
  6. ????????.toFile("c:/a380_watermark_bottom_right.jpg");??
  7. ??
  8. Thumbnails.of("images/a380_1280x1024.jpg")???
  9. ????????.size(1280,?1024)??
  10. ????????.watermark(Positions.CENTER,?ImageIO.read(new?File("images/watermark.png")),?0.5f)???
  11. ????????.outputQuality(0.8f)???
  12. ????????.toFile("c:/a380_watermark_center.jpg");??




6、裁剪

Java代码 ?收藏代码
  1. //sourceRegion()??
  2. ??
  3. //图片中心400*400的区域??
  4. Thumbnails.of("images/a380_1280x1024.jpg")??
  5. ????????.sourceRegion(Positions.CENTER,?400,400)??
  6. ????????.size(200,?200)??
  7. ????????.keepAspectRatio(false)???
  8. ????????.toFile("c:/a380_region_center.jpg");??
  9. ??
  10. //图片右下400*400的区域??
  11. Thumbnails.of("images/a380_1280x1024.jpg")??
  12. ????????.sourceRegion(Positions.BOTTOM_RIGHT,?400,400)??
  13. ????????.size(200,?200)??
  14. ????????.keepAspectRatio(false)???
  15. ????????.toFile("c:/a380_region_bootom_right.jpg");??
  16. ??
  17. //指定坐标??
  18. Thumbnails.of("images/a380_1280x1024.jpg")??
  19. ????????.sourceRegion(600,?500,?400,?400)??
  20. ????????.size(200,?200)??
  21. ????????.keepAspectRatio(false)???
  22. ????????.toFile("c:/a380_region_coord.jpg");??




7、转化图像格式

Java代码 ?收藏代码
  1. //outputFormat(图像格式)??
  2. Thumbnails.of("images/a380_1280x1024.jpg")???
  3. ????????.size(1280,?1024)??
  4. ????????.outputFormat("png")???
  5. ????????.toFile("c:/a380_1280x1024.png");???
  6. ??
  7. Thumbnails.of("images/a380_1280x1024.jpg")???
  8. ????????.size(1280,?1024)??
  9. ????????.outputFormat("gif")???
  10. ????????.toFile("c:/a380_1280x1024.gif");???



8、输出到OutputStream

Java代码 ?收藏代码
  1. //toOutputStream(流对象)??
  2. OutputStream?os?=?new?FileOutputStream("c:/a380_1280x1024_OutputStream.png");??
  3. Thumbnails.of("images/a380_1280x1024.jpg")???
  4. ????????.size(1280,?1024)??
  5. ????????.toOutputStream(os);??



9、输出到BufferedImage

Java代码 ?收藏代码
  1. //asBufferedImage()?返回BufferedImage??
  2. BufferedImage?thumbnail?=?Thumbnails.of("images/a380_1280x1024.jpg")???
  3. ????????.size(1280,?1024)??
  4. ????????.asBufferedImage();??
  5. ImageIO.write(thumbnail,?"jpg",?new?File("c:/a380_1280x1024_BufferedImage.jpg"));???
发表评论
用户名: 匿名