From ce2c33ba07d0b0cbb14ec6b37b72b19d073b15af Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期五, 06 三月 2020 11:15:53 +0800
Subject: [PATCH] 视频封面图裁剪bug修复

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

diff --git a/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java b/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java
index 89686b7..dfa0cfa 100644
--- a/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java
+++ b/utils/src/main/java/org/yeshi/utils/ImageCropUtil.java
@@ -6,6 +6,7 @@
 import java.io.InputStream;
 
 import net.coobird.thumbnailator.Thumbnails;
+import net.coobird.thumbnailator.Thumbnails.Builder;
 import net.coobird.thumbnailator.geometry.Positions;
 
 /**
@@ -28,6 +29,33 @@
 			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==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