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