# imageTool **Repository Path**: superch/imageTool ## Basic Information - **Project Name**: imageTool - **Description**: 使用Thumbnailator类库处理图片的例子 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-11-14 - **Last Updated**: 2022-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # imageTool #### 相对于Java原生图像处理API的繁琐,相信这个类库会定让你眼前一亮! ``` import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.geometry.Positions; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.net.URL; /** * 使用Thumbnailator类库处理图片的例子 * * Thumbnailator 是一个优秀的图片处理的Google开源Java类库 * 从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片, * 且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。 */ public class Demos { public static void main(String[] args) throws Exception { size1(); // 指定大小缩放(锁定纵横比例) size2(); // 指定大小缩放(不锁定纵横比例) scale(); // 按照比例进行缩放 rotate(); // 旋转 watermark(); // 水印 crop(); // 剪裁 cvtFormat(); // 转化图像格式 cvtQuality(); // 改变图片质量 toOutputStream(); // 输出到流 } /** * 指定大小缩放(锁定纵横比例) */ public static void size1() throws Exception { Thumbnails.of(getURL("y1.png")) .size(300, 200) .toFile("c:/temp/1-1.jpg"); } /** * 指定大小缩放(不锁定纵横比例) */ public static void size2() throws Exception { Thumbnails.of(getURL("y1.png")) .size(300, 200) .keepAspectRatio(false) .toFile("c:/temp/1-2.jpg"); } /** * 按照比例进行缩放 */ public static void scale() throws Exception { Thumbnails.of(getURL("y1.png")) .scale(0.5f) // 大于1放大,小于1缩小 .toFile("c:/temp/2.jpg"); } /** * 旋转 */ public static void rotate() throws Exception { Thumbnails.of(getURL("y1.png")) .size(300, 200) .rotate(90) // 角度:正数顺时针,附属逆时针 .toFile("c:/temp/3.jpg"); } /** * 水印 */ public static void watermark() throws Exception { BufferedImage watemarkBI = Thumbnails.of(getURL("2.png")) .scale(0.8f) .asBufferedImage(); Thumbnails.of(getURL("y1.png")) .scale(1f) .watermark(Positions.BOTTOM_RIGHT, watemarkBI, 0.5f) .toFile("c:/temp/4.jpg"); } /** * 剪裁 */ public static void crop() throws Exception { Thumbnails.of(getURL("y1.png")) .sourceRegion(Positions.CENTER, 400, 400) .size(200, 200) .keepAspectRatio(false) .toFile("c:/temp/5.jpg"); } /** * 转化图像格式 */ public static void cvtFormat() throws Exception { Thumbnails.of(getURL("y1.png")) .scale(1) .outputFormat("gif") .toFile("c:/temp/6.gif"); } /** * 改变图片质量 */ public static void cvtQuality() throws Exception { Thumbnails.of(getURL("y1.png")) .scale(1) .outputQuality(0.1) // 0.0f - 1.0f .toFile("c:/temp/7.jpg"); } /** * 输出到流 */ public static void toOutputStream() throws Exception { ByteArrayOutputStream os = new ByteArrayOutputStream(); Thumbnails.of(getURL("y1.png")) .scale(1) .toOutputStream(os); System.out.println(os.size()); } public static URL getURL(String fileName) { return Demos.class.getResource(fileName); } } ```