Thumbnailator java 图片处理技术
来源:互联网 发布:网络节目商业计划书 编辑:程序博客网 时间:2024/05/18 18:43
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。http://code.google.com/p/thumbnailator/ 版本:thumbnailator-0.4.2.jar代码下载 http://download.csdn.net/detail/u012889434/9452033原图如下:1、指定大小进行缩放Java代码 收藏代码 //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横比200小,高比300大,高缩小到300,图片比例不变 * 若图片横比200大,高比300小,横缩小到200,图片比例不变 * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300 */ Thumbnails.of("image/girls.jpg") .size(200, 300) .toFile("images/girls_200x300.jpg"); Thumbnails.of("image/girls.jpg") .size(2560, 2048) .toFile("images/girls_2560x2048.jpg"); 2、按照比例进行缩放Java代码 收藏代码 //scale(比例) Thumbnails.of("image/girls.jpg") .scale(0.25f) .toFile("images/girls_25%.jpg"); Thumbnails.of("image/girls.jpg") .scale(1.10f) .toFile("images/girls_110%.jpg"); 3、不按照比例,指定大小进行缩放Java代码 收藏代码 //keepAspectRatio(false) 默认是按照比例缩放的 Thumbnails.of("image/girls.jpg") .size(200, 200) .keepAspectRatio(false) .toFile("images/girls_200x200.jpg"); 4、旋转Java代码 收藏代码 //rotate(角度),正数:顺时针 负数:逆时针 Thumbnails.of("image/girls.jpg") .size(1280, 1024) .rotate(90) .toFile("images/girls_rotate+90.jpg"); Thumbnails.of("image/girls.jpg") .size(1280, 1024) .rotate(-90) .toFile("images/girls_rotate-90.jpg"); 5、水印Java代码 收藏代码 //watermark(位置,水印图,透明度) Thumbnails.of("image/girls.jpg") .size(1280, 1024) .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("image/watermark.jpg")), 0.5f) .outputQuality(0.8f) .toFile("images/girls_watermark_bottom_right.jpg"); Thumbnails.of("image/girls.jpg") .size(1280, 1024) .watermark(Positions.CENTER, ImageIO.read(new File("image/watermark.jpg")), 0.5f) .outputQuality(0.8f) .toFile("images/girls_watermark_center.jpg"); 6、裁剪Java代码 收藏代码 //sourceRegion() //图片中心400*400的区域 Thumbnails.of("image/girls.jpg") .sourceRegion(Positions.CENTER, 400,400) .size(200, 200) .keepAspectRatio(false) .toFile("images/girls_region_center.jpg"); //图片右下400*400的区域 Thumbnails.of("image/girls.jpg") .sourceRegion(Positions.BOTTOM_RIGHT, 400,400) .size(200, 200) .keepAspectRatio(false) .toFile("images/girls_region_bootom_right.jpg"); //指定坐标 Thumbnails.of("image/girls.jpg") .sourceRegion(600, 500, 400, 400) .size(200, 200) .keepAspectRatio(false) .toFile("images/girls_region_coord.jpg"); 7、转化图像格式Java代码 收藏代码 //outputFormat(图像格式) Thumbnails.of("image/girls.jpg") .size(1280, 1024) .outputFormat("png") .toFile("images/girls_1280x1024.png"); Thumbnails.of("image/girls.jpg") .size(1280, 1024) .outputFormat("gif") .toFile("images/girls_1280x1024.gif"); 8、输出到OutputStreamJava代码 收藏代码 //toOutputStream(流对象) OutputStream os = new FileOutputStream("images/girls_1280x1024_OutputStream.png"); Thumbnails.of("image/girls.jpg") .size(1280, 1024) .toOutputStream(os); 9、输出到BufferedImageJava代码 收藏代码 //asBufferedImage() 返回BufferedImage BufferedImage thumbnail = Thumbnails.of("image/girls.jpg") .size(1280, 1024) .asBufferedImage(); ImageIO.write(thumbnail, "jpg", new File("images/girls_1280x1024_BufferedImage.jpg")); 需要注意的是,对于CMYK模式的图像,由于JDK的Bug,目前还不能够处理,会出以下异常:引用javax.imageio.IIOException: Unsupported Image Typeat com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1063)at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1034)at javax.imageio.ImageReader.read(ImageReader.java:940)at net.coobird.thumbnailator.tasks.io.FileImageSource.read(Unknown Source)引用 javax.imageio.IIOException: Incompatible color conversion at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkColorConversion(JPEGImageReader.java:973)ICC profile引用 java.lang.IllegalArgumentException: Numbers of source Raster bands and source color space components do not match at java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:482) at com.sun.imageio.plugins.jpeg.JPEGImageReader.acceptPixels(JPEGImageReader.java:1268) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage(Native Method) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1236) at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1039) at javax.imageio.ImageReader.read(ImageReader.java:939)这些问题可以JAI.create()来代替ImageIO.read()解决。而高清图的内存溢出OOM问题只能使用ImageMagick转换了。
1 0
- Thumbnailator java 图片处理技术
- Java图片处理 Thumbnailator 开源框架
- java 使用Thumbnailator图片处理包装类
- Java图片处理开源框架-Thumbnailator
- Thumbnailator(图片压缩处理)
- thumbnailator图片处理工具
- java图片压缩--Thumbnailator
- Java处理图片缩放,水印的利器 thumbnailator
- Java图片处理开源框架--Thumbnailator使用简介
- Java处理图片缩放,水印的利器 thumbnailator
- 图片上传处理之thumbnailator
- Thumbnailator--google图片处理项目
- java使用Thumbnailator操作图片
- java使用Thumbnailator操作图片
- java使用Thumbnailator操作图片
- java使用Thumbnailator操作图片
- java使用Thumbnailator操作图片
- java使用Thumbnailator操作图片
- RabbitMQ 入门 Helloworld
- HDU 3335(舞蹈链)
- Android内存解析(二)— 详解内存,内部存储和外部存储
- Android一点 异常收集
- lumped port&wave port/ driven modal 与driven terminal
- Thumbnailator java 图片处理技术
- RabbitMQ (二)工作队列
- Java Agent初探——动态修改代码
- CocoaPods使用规则
- snmp学习资料
- Exynos4412 Uboot 的使用与烧写
- linux如何开启oracle自动备份的脚本
- RabbitMQ (三) 发布/订阅
- StretchDIBits 的使用