thumbnailator工具类
来源:互联网 发布:零基础学淘宝美工难吗 编辑:程序博客网 时间:2024/05/21 03:26
import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import javax.imageio.ImageIO;import net.coobird.thumbnailator.Thumbnails;import net.coobird.thumbnailator.geometry.Position;public class ImageUtil { public static void main(String[] args) throws IOException { int x = 0; int y = 0;//左上 int w = 300; int h = 500;//右下 imgSourceRegion("e:/upload/1508166546722.jpg", "e:/upload/top", x, y, x + w, y + h, 768, 576, true); } /** * 指定大小进行缩放 若图片横比width小,高比height小,不变 若图片横比width小,高比height大,高缩小到height,图片比例不变 * 若图片横比width大,高比height小,横缩小到width,图片比例不变 * 若图片横比width大,高比height大,图片按比例缩小,横为width或高为height * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @throws IOException */ public static void imgThumb(String source, String output, int width, int height, float quality) throws IOException { Thumbnails.of(source).size(width, height).outputQuality(quality).outputFormat("jpg").toFile(output); } /** * 指定大小进行缩放 * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @throws IOException */ public static void imgThumb(File source, String output, int width, int height, float quality) throws IOException { Thumbnails.of(source).size(width, height).outputQuality(quality).outputFormat("jpg").toFile(output); } /** * 按照比例进行缩放 * * @param source 输入源 * @param output 输出源 * @throws IOException */ public static void imgScale(String source, String output, double scale) throws IOException { Thumbnails.of(source).scale(scale).outputFormat("jpg").toFile(output); } public static void imgScale(File source, String output, double scale) throws IOException { Thumbnails.of(source).scale(scale).outputFormat("jpg").toFile(output); } /** * 不按照比例,指定大小进行缩放 * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @param keepAspectRatio 默认是按照比例缩放的,值为false 时不按比例缩放 */ public static void imgNoScale(String source, String output, int width, int height, boolean keepAspectRatio) throws IOException { Thumbnails.of(source).size(width, height).keepAspectRatio(keepAspectRatio).outputFormat("jpg").toFile(output); } public static void imgNoScale(File source, String output, int width, int height, boolean keepAspectRatio) throws IOException { Thumbnails.of(source).size(width, height).keepAspectRatio(keepAspectRatio).outputFormat("jpg").toFile(output); } /** * 旋转 ,正数:顺时针 负数:逆时针 * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @param rotate 角度 */ public static void imgRotate(String source, String output, int width, int height, double rotate) throws IOException { Thumbnails.of(source).size(width, height).rotate(rotate).outputFormat("jpg").toFile(output); } public static void imgRotate(File source, String output, int width, int height, double rotate) throws IOException { Thumbnails.of(source).size(width, height).rotate(rotate).outputFormat("jpg").toFile(output); } /** * 水印 * * @param source 输入源 * @param output 输入源 * @param width 宽 * @param height 高 * @param position 水印位置 Positions.BOTTOM_RIGHT o.5f * @param watermark 水印图片地址 * @param transparency 透明度 0.5f * @param quality 图片质量 0.8f */ public static void imgWatermark(String source, String output, int width, int height, Position position, String watermark, float transparency, float quality) throws IOException { Thumbnails.of(source).size(width, height).watermark(position, ImageIO.read(new File(watermark)), transparency) .outputQuality(0.8f).outputFormat("jpg").toFile(output); } public static void imgWatermark(File source, String output, int width, int height, Position position, String watermark, float transparency, float quality) throws IOException { Thumbnails.of(source).size(width, height).watermark(position, ImageIO.read(new File(watermark)), transparency) .outputQuality(0.8f).outputFormat("jpg").toFile(output); } /** * 裁剪图片 * * @param source 输入源 * @param output 输出源 * @param position 裁剪位置 * @param x 裁剪区域x * @param y 裁剪区域y * @param width 宽 * @param height 高 * @param keepAspectRatio 默认是按照比例缩放的,值为false 时不按比例缩放 */ public static void imgSourceRegion(String source, String output, Position position, int x, int y, int width, int height, boolean keepAspectRatio) throws IOException { Thumbnails.of(source).sourceRegion(position, x, y).size(width, height).keepAspectRatio(keepAspectRatio) .outputFormat("jpg").toFile(output); } public static void imgSourceRegion(File source, String output, Position position, int x, int y, int width, int height, boolean keepAspectRatio) throws IOException { Thumbnails.of(source).sourceRegion(position, x, y).size(width, height).keepAspectRatio(keepAspectRatio) .outputFormat("jpg").toFile(output); } /** * 按坐标裁剪 * * @param source 输入源 * @param output 输出源 * @param x 起始x坐标 * @param y 起始y坐标 * @param x1 结束x坐标 * @param y1 结束y坐标 * @param width 宽 * @param height 高 * @param keepAspectRatio 默认是按照比例缩放的,值为false 时不按比例缩放 */ public static void imgSourceRegion(String source, String output, int x, int y, int x1, int y1, int width, int height, boolean keepAspectRatio) throws IOException { Thumbnails.of(source).sourceRegion(x, y, x1, y1).size(width, height).keepAspectRatio(keepAspectRatio) .toFile(output); } public static void imgSourceRegion(File source, String output, int x, int y, int x1, int y1, int width, int height, boolean keepAspectRatio) throws IOException { Thumbnails.of(source).sourceRegion(x, y, x1, y1).size(width, height).keepAspectRatio(keepAspectRatio) .outputFormat("jpg").toFile(output); } /** * 转化图像格式 * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @param format 图片类型,gif、png、jpg */ public static void imgFormat(String source, String output, int width, int height, String format) throws IOException { Thumbnails.of(source).size(width, height).outputFormat(format).toFile(output); } public static void imgFormat(File source, String output, int width, int height, String format) throws IOException { Thumbnails.of(source).size(width, height).outputFormat(format).outputFormat("jpg").toFile(output); } /** * 输出到OutputStream * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @return toOutputStream(流对象) */ public static OutputStream imgOutputStream(String source, String output, int width, int height) throws IOException { OutputStream os = new FileOutputStream(output); Thumbnails.of(source).size(width, height).outputFormat("jpg").toOutputStream(os); return os; } public static OutputStream imgOutputStream(File source, String output, int width, int height) throws IOException { OutputStream os = new FileOutputStream(output); Thumbnails.of(source).size(width, height).outputFormat("jpg").toOutputStream(os); return os; } /** * 输出到BufferedImage * * @param source 输入源 * @param output 输出源 * @param width 宽 * @param height 高 * @param format 图片类型,gif、png、jpg * @return BufferedImage */ public static BufferedImage imgBufferedImage(String source, String output, int width, int height, String format) throws IOException { BufferedImage buf = Thumbnails.of(source).size(width, height).outputFormat("jpg").asBufferedImage(); ImageIO.write(buf, format, new File(output)); return buf; } public static BufferedImage imgBufferedImage(File source, String output, int width, int height, String format) throws IOException { BufferedImage buf = Thumbnails.of(source).size(width, height).outputFormat("jpg").asBufferedImage(); ImageIO.write(buf, format, new File(output)); return buf; }}
jar包下载 <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version> </dependency>
阅读全文
1 0
- thumbnailator工具类
- thumbnailator图片处理工具
- 使用Thumbnailator工具压缩图片
- Java开源图片工具Thumbnailator简介
- Java使用google开源工具Thumbnailator实现图片压缩
- Java图像缩略图类库 Thumbnailator
- java 使用Thumbnailator图片处理包装类
- Java图像缩略图类库 Thumbnailator 0.4.5 发布
- Thumbnailator的使用
- Thumbnailator(图片压缩处理)
- Thumbnailator使用简介
- Thumbnailator使用简介
- Thumbnailator使用简介
- 利用Thumbnailator生成缩略图
- java-Thumbnailator实现缩略图
- Thumbnailator使用简介
- Java生成缩略图Thumbnailator
- Thumbnailator图像处理
- 几种获取当前时间的方法
- Android Studio 插件开发详解四:填坑
- 虚树模板
- BLE-NRF51822教程8-动态广播
- dataSource
- thumbnailator工具类
- nodejs 几行代码实现静态资源服务器
- python基础——paramiko模块
- Android开发:RecyclerView平滑流畅的滑动到指定位置
- C++实习笔记(2)
- 4.1 docker-1.12 run命令运行以及参数详解
- BLE-NRF51822教程9—动态密码(配对码)
- 实验4:栈和队列的基本操作实现及其应用之《链栈》
- Test 2017.10.08