java验证图片大小_java 校验图片的大小、尺寸、比例

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-29 00:04   35   0

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;

}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP