java 校驗圖片的大小、尺寸、比例
阿新 • • 發佈:2018-11-29
import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class CheckImagesFormatUtil { /** * 圖片的畫素判斷 * @param file 檔案 * @param imageWidth 圖片寬度 * @param imageHeight 圖片高度 * @return true:上傳圖片寬度和高度都小於等於規定最大值 * @throws IOException */ public static boolean checkImageElement(File file, int imageWidth, int imageHeight) throws IOException { Boolean result = false; if (!file.exists()) { return false; } BufferedImage bufferedImage = ImageIO.read(file); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); if (bufferedImage != null && height == imageHeight && width == imageWidth) { result = true; } return result; } /** * 校驗圖片比例 * @param file 圖片 * @param imageWidth 寬 * @param imageHeight 高 * @return true:符合要求 * @throws IOException */ public static boolean checkImageScale(File file, int imageWidth, int imageHeight) throws IOException { Boolean result = false; if (!file.exists()) { return false; } BufferedImage bufferedImage = ImageIO.read(file); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); if (imageHeight != 0 && height != 0) { int scale1 = imageHeight / imageWidth; int scale2 = height / width; if (scale1 == scale2) { result = true; } } return result; } /** * 校驗圖片的大小 * @param file 檔案 * @param imageSize 圖片最大值(KB) * @return true:上傳圖片小於圖片的最大值 */ public static boolean checkImageSize(File file, Long imageSize) { if (!file.exists()) { return false; } Long size = file.length() / 1024; // 圖片大小 Long maxImageSize = SettingUtils.get().getMaxImageSize(); // 圖片最大不能超過5M if (maxImageSize == null) { maxImageSize = 5 * 1024L; } else { maxImageSize = maxImageSize * 1024; } if (size > maxImageSize) { return false; } if (imageSize == null) { return true; } if (size.intValue() <= imageSize) { return true; } return false; } }