From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 09 五月 2020 21:41:27 +0800
Subject: [PATCH] 2.1需求

---
 utils/src/main/java/org/yeshi/utils/ImageCropUtil.java |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java b/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java
index 004b3cf..dfa0cfa 100644
--- a/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java
+++ b/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java
@@ -3,8 +3,10 @@
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.FileNotFoundException;
+import java.io.InputStream;
 
 import net.coobird.thumbnailator.Thumbnails;
+import net.coobird.thumbnailator.Thumbnails.Builder;
 import net.coobird.thumbnailator.geometry.Positions;
 
 /**
@@ -23,10 +25,37 @@
 	 * @throws FileNotFoundException
 	 * @throws Exception
 	 */
+	public static void centerCrop(InputStream sourceImage, File destImage, float ratio)
+			throws FileNotFoundException, Exception {
+		if (sourceImage==null)
+			throw new FileNotFoundException();
+		
+		BufferedImage image = Thumbnails.of(sourceImage).scale(1.0f).asBufferedImage();
+		int width = image.getWidth();
+		int height = image.getHeight();
+		int newWidth = 0;
+		int newHeight = 0;
+		if (width > ratio * height) {// 浠ラ珮涓轰富
+			newHeight = height;
+			newWidth = (int) (newHeight * ratio);
+		} else {// 浠ュ涓轰富
+			newWidth = width;
+			newHeight = (int) (newWidth / ratio);
+		}
+
+		if (destImage.exists())
+			destImage.delete();
+
+		Thumbnails.of(sourceImage).sourceRegion(Positions.CENTER, newWidth, newHeight).scale(1.0)
+				.toFile(destImage.getPath());
+	}
+	
+	
 	public static void centerCrop(File sourceImage, File destImage, float ratio)
 			throws FileNotFoundException, Exception {
-		if (!sourceImage.exists())
+		if (sourceImage==null)
 			throw new FileNotFoundException();
+		
 		BufferedImage image = Thumbnails.of(sourceImage).scale(1.0f).asBufferedImage();
 		int width = image.getWidth();
 		int height = image.getHeight();

--
Gitblit v1.8.0