Thumbnailator概述:
???
????? Thumbnailator是与Java界面流畅的缩略图生成库。它简化了通过提供一个API允许精细的缩略图生成调整生产从现有的图像文件的缩略图和图像对象的过程,同时保持所需要的最少的代码量。个人的理解,它对java自带的图片处理工具进行了优化,在效率和使用的方便程度上都要高于java自带的处理工具。Thumbnailator的主要常用功能如下:
下面将对各个功能进行逐一的示范演示,以及最终的处理效果
?
?
?????? 代码如下:
?
public static boolean operateByMaxSize(String inSrc, String outSrc, int height, int width){ boolean flag = false; if(checkNull(inSrc) || checkNull(outSrc)){ return flag; } try { Thumbnails.of(inSrc).size(width, height).toFile(outSrc); flag = true; } catch (IOException e) { e.printStackTrace(); } return flag; }
?
?
???? 处理之后的图片效果如下:
???
?
?
?? 代码如下:
?
public static boolean operateByPer(String inSrc, String outSrc, double percent){ boolean flag = false; if(checkNull(inSrc) || checkNull(outSrc)){ return flag; } Builder<File> builder = Thumbnails.of(inSrc); builder.scale(percent); try { builder.toFile(outSrc); flag = true; } catch (IOException e) { e.printStackTrace(); } return flag; }
?
?
?? 效果展示如下:
?
?
??? 代码如下:
?
public static boolean operateBySize(String inSrc, String outSrc, int height, int width){ boolean flag = false; if(checkNull(inSrc) || checkNull(outSrc)){ return flag; } Builder<File> builder = Thumbnails.of(inSrc); builder.size(width, height); builder.keepAspectRatio(false); try { builder.toFile(outSrc); flag = true; } catch (IOException e) { e.printStackTrace(); } return flag; }
?
?
??? 效果展示如下:
??
?
?
???? 代码如下:
?
public static boolean rotate(String inSrc, String outSrc, double angle){ boolean flag = false; if(checkNull(inSrc) || checkNull(outSrc)){ return flag; } try { Thumbnails.of(inSrc).rotate(angle).size(1000, 1000).toFile(outSrc); flag = true; } catch (IOException e) { e.printStackTrace(); } return flag; }
?
?
??? 效果展示如下:
??
?
?
?
??? 代码如下:
public static boolean addWaterImg(String inSrc, String outSrc, String waterImg, Positions position, double percent) { boolean flag = false; if (checkNull(inSrc) || checkNull(outSrc) || checkNull(waterImg)) { return flag; } try { Thumbnails .of(inSrc).size(1000, 1000) .watermark(position, ImageIO.read(new File(waterImg)), 0.1f) .outputQuality(percent).toFile(outSrc); flag = true; } catch (IOException e) { e.printStackTrace(); } return flag; }
?
?? 效果如下:
?
?
?
???? 代码如下:
public static void toOutputStream(String inSrc, String outSrc, int height, int width){ if (checkNull(inSrc) || checkNull(outSrc)) { return ; } OutputStream os = null; try { os = new FileOutputStream(outSrc); Thumbnails.of(inSrc).size(width, height).toOutputStream(os); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } }
?
?? 效果如下:
?
?
以上资源仅仅是为了个人的总结回顾,如有不当的地方请大家包含!
原文:http://newbee-zc.iteye.com/blog/2248048