java 实现BufferedImage和ImageReader两种方式获取图片宽高、判断图片类型、获取图片大小工具类代码以及测试响应结果
2017-08-24 18:03
2391 查看
源码:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class ImageUtil {
public static void checkImageIsNormal(final MultipartFile imageFile)
throws Exception {
if (imageFile == null) {
throw new IllegalArgumentException("imageFile == null");
}
final long imageSize = imageFile.getSize();
System.out.println("length:" + imageSize);
if (imageSize > Config.IMG_MAX_SIZE) {
throw new IllegalArgumentException("图片大小不能超过2M");
}
final String fileName = imageFile.getOriginalFilename();
final String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
System.out.println("name:" + fileName);
System.out.println("type:" + suffix);
final String[] imageTypes = { "jpeg", "jpg", "png", "bmp" };
final List<String> imageTypeList = Arrays.asList(imageTypes);
if (!imageTypeList.contains(suffix.toLowerCase())) {
throw new IllegalArgumentException("图片格式不支持");
}
final BufferedImage bufferedImage = ImageIO.read(imageFile
.getInputStream());
final int width = bufferedImage.getWidth();
final int height = bufferedImage.getHeight();
System.out.println("width:" + width + " height:" + height);
if (width < Config.IMG_MIN_PIXEL || width > Config.IMG_MAX_PIXEL
|| height < Config.IMG_MIN_PIXEL
|| height > Config.IMG_MAX_PIXEL) {
throw new IllegalArgumentException("图片尺寸不符合");
}
}
public static void checkImageIsNormal(final String imageUrl)
throws Exception {
if (imageUrl == null) {
throw new IllegalArgumentException("imageUrl == null");
}
final URL url = new URL(imageUrl);
final URLConnection uc = url.openConnection();
if (uc == null) {
throw new NullPointerException("网络图片不存在");
}
final long imageSize = uc.getContentLength();
System.out.println("netImage length:" + imageSize);
if (imageSize > Config.IMG_MAX_SIZE) {
throw new IllegalArgumentException("图片大小不能超过2M");
}
final ImageInputStream iis = ImageIO.createImageInputStream(uc
.getInputStream());
final Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
throw new RuntimeException("No readers found!");
}
final ImageReader reader = iter.next();
System.out.println("Net imageType: " + reader.getFormatName());
final String suffix = reader.getFormatName();
final String[] imageTypes = { "jpeg", "jpg", "png", "bmp" };
final List<String> imageTypeList = Arrays.asList(imageTypes);
if (!imageTypeList.contains(suffix.toLowerCase())) {
throw new IllegalArgumentException("图片格式不支持");
}
reader.setInput(iis, true);
final int width = reader.getWidth(0);
final int height = reader.getHeight(0);
System.out.println("width:" + width + " height:" + height);
if (width < Config.IMG_MIN_PIXEL || width > Config.IMG_MAX_PIXEL
|| height < Config.IMG_MIN_PIXEL
|| height > Config.IMG_MAX_PIXEL) {
throw new IllegalArgumentException("图片尺寸不符合");
}
}
public static void imageReader() throws Exception, IOException {
final long start = System.currentTimeMillis();
final File file = new File("wwj6.jpg");
final ImageInputStream iis = ImageIO
.createImageInputStream(new FileInputStream(file));
final Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
throw new RuntimeException("No readers found!");
}
final ImageReader reader = iter.next();
reader.setInput(iis, true);
final int width = reader.getWidth(0);
final int height = reader.getHeight(0);
final long end = System.currentTimeMillis();
System.out.println("userd:" + (end - start) + "ms");
System.out.println("width:" + width + " height:" + height);
}
public static void bufferedImage() throws Exception, IOException {
final long start = System.currentTimeMillis();
final File file = new File("wwj6.jpg");
final BufferedImage bufferedImage = ImageIO.read(new FileInputStream(
file));
final int width = bufferedImage.getWidth();
final int height = bufferedImage.getHeight();
final long end = System.currentTimeMillis();
System.out.println("userd:" + (end - start) + "ms");
System.out.println("width:" + width + " height:" + height);
}
public static void main(final String[] args) throws IOException {
System.out.println("imageReader:");
try {
imageReader();
} catch (final Exception e) {
e.printStackTrace();
}
System.out.println("bufferedImage:");
try {
bufferedImage();
} catch (final Exception e) {
e.printStackTrace();
}
}
}
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class ImageUtil {
public static void checkImageIsNormal(final MultipartFile imageFile)
throws Exception {
if (imageFile == null) {
throw new IllegalArgumentException("imageFile == null");
}
final long imageSize = imageFile.getSize();
System.out.println("length:" + imageSize);
if (imageSize > Config.IMG_MAX_SIZE) {
throw new IllegalArgumentException("图片大小不能超过2M");
}
final String fileName = imageFile.getOriginalFilename();
final String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
System.out.println("name:" + fileName);
System.out.println("type:" + suffix);
final String[] imageTypes = { "jpeg", "jpg", "png", "bmp" };
final List<String> imageTypeList = Arrays.asList(imageTypes);
if (!imageTypeList.contains(suffix.toLowerCase())) {
throw new IllegalArgumentException("图片格式不支持");
}
final BufferedImage bufferedImage = ImageIO.read(imageFile
.getInputStream());
final int width = bufferedImage.getWidth();
final int height = bufferedImage.getHeight();
System.out.println("width:" + width + " height:" + height);
if (width < Config.IMG_MIN_PIXEL || width > Config.IMG_MAX_PIXEL
|| height < Config.IMG_MIN_PIXEL
|| height > Config.IMG_MAX_PIXEL) {
throw new IllegalArgumentException("图片尺寸不符合");
}
}
public static void checkImageIsNormal(final String imageUrl)
throws Exception {
if (imageUrl == null) {
throw new IllegalArgumentException("imageUrl == null");
}
final URL url = new URL(imageUrl);
final URLConnection uc = url.openConnection();
if (uc == null) {
throw new NullPointerException("网络图片不存在");
}
final long imageSize = uc.getContentLength();
System.out.println("netImage length:" + imageSize);
if (imageSize > Config.IMG_MAX_SIZE) {
throw new IllegalArgumentException("图片大小不能超过2M");
}
final ImageInputStream iis = ImageIO.createImageInputStream(uc
.getInputStream());
final Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
throw new RuntimeException("No readers found!");
}
final ImageReader reader = iter.next();
System.out.println("Net imageType: " + reader.getFormatName());
final String suffix = reader.getFormatName();
final String[] imageTypes = { "jpeg", "jpg", "png", "bmp" };
final List<String> imageTypeList = Arrays.asList(imageTypes);
if (!imageTypeList.contains(suffix.toLowerCase())) {
throw new IllegalArgumentException("图片格式不支持");
}
reader.setInput(iis, true);
final int width = reader.getWidth(0);
final int height = reader.getHeight(0);
System.out.println("width:" + width + " height:" + height);
if (width < Config.IMG_MIN_PIXEL || width > Config.IMG_MAX_PIXEL
|| height < Config.IMG_MIN_PIXEL
|| height > Config.IMG_MAX_PIXEL) {
throw new IllegalArgumentException("图片尺寸不符合");
}
}
public static void imageReader() throws Exception, IOException {
final long start = System.currentTimeMillis();
final File file = new File("wwj6.jpg");
final ImageInputStream iis = ImageIO
.createImageInputStream(new FileInputStream(file));
final Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
throw new RuntimeException("No readers found!");
}
final ImageReader reader = iter.next();
reader.setInput(iis, true);
final int width = reader.getWidth(0);
final int height = reader.getHeight(0);
final long end = System.currentTimeMillis();
System.out.println("userd:" + (end - start) + "ms");
System.out.println("width:" + width + " height:" + height);
}
public static void bufferedImage() throws Exception, IOException {
final long start = System.currentTimeMillis();
final File file = new File("wwj6.jpg");
final BufferedImage bufferedImage = ImageIO.read(new FileInputStream(
file));
final int width = bufferedImage.getWidth();
final int height = bufferedImage.getHeight();
final long end = System.currentTimeMillis();
System.out.println("userd:" + (end - start) + "ms");
System.out.println("width:" + width + " height:" + height);
}
public static void main(final String[] args) throws IOException {
System.out.println("imageReader:");
try {
imageReader();
} catch (final Exception e) {
e.printStackTrace();
}
System.out.println("bufferedImage:");
try {
bufferedImage();
} catch (final Exception e) {
e.printStackTrace();
}
}
}
相关文章推荐
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结
- 两种利用GCD实现分步获取结果的方式和SDWebImage缓存机制的验证
- Java图片读取之BufferedImage得到像素矩阵的两种方式
- 如何判断链表有没有环,环的大小?环的切入点在哪里以及链表的长度(分别用javascrip和Java代码实现)
- Java 求1-100以内的所有素数,判断一个数是不是素数。Java代码实现附测试结果图
- java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结
- input type='file'上传图片限制大小,类型判断,以及原生js实现上传至后端前实现图片显
- 两种利用GCD实现分步获取结果的方式和SDWebImage缓存机制的验证
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
- 获取图片、屏幕像素并纠正bufferedimage导入失败的问题Ps:手机端android的图片和屏幕像素获取正确方式
- 判断文件类型是否为图片的方法——Java实现
- 【转】NET中反射实现 可空类型 与基础类型的转换 以及获取指定属性的大小问题
- Java中有两种实现多线程的方式以及两种方式之间的区别
- 用MFC实现代码获取当前EXE 执行的绝对路径,用于扩展相对路径扩展,以及计算文件大小功能
- Java中有两种实现多线程的方式以及两种方式之间的区别
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- 获取android 手机屏幕的大小以及动态设置背景图片的两种方法;
- java application 应用程序 使用JDBC proxool 两种方式连接数据库 测试程序代码
- imageView代码实现设置图片大小