package org.yeshi.utils;
|
|
import java.awt.image.BufferedImage;
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
|
import net.coobird.thumbnailator.Thumbnails;
|
import net.coobird.thumbnailator.geometry.Positions;
|
|
/**
|
* 图片裁剪帮助
|
*
|
* @author Administrator
|
*
|
*/
|
public class ImageCropUtil {
|
|
/**
|
* 剪切图片中间部分(内切)
|
* @param sourceImage
|
* @param destImage
|
* @param ratio
|
* @throws FileNotFoundException
|
* @throws Exception
|
*/
|
public static void centerCrop(File sourceImage, File destImage, float ratio)
|
throws FileNotFoundException, Exception {
|
if (!sourceImage.exists())
|
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());
|
}
|
|
}
|