将图片转成字节流 public static byte[] image2Bytes(String imagePath) { ImageIcon ima = new ImageIcon(imagePath); BufferedImage bu = new BufferedImage(ima.getImage().getWidth(null), ima .getImage().getHeight(null), BufferedImage.TYPE_INT_RGB); ByteArrayOutputStream imageStream = new ByteArrayOutputStream(); try { //把这个jpg图像写到这个流中去,这里可以转变图片的编码格式 boolean resultWrite = ImageIO.write(bu, "png", imageStream); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } byte[] tagInfo = imageStream.toByteArray();
return tagInfo; }
根据字节流来判断这个图片的编码格式
public static String checkImageType(byte[] imageBytes) { ByteArrayInputStream bais = null; MemoryCacheImageInputStr eam mcis = null; try { bais = new ByteArrayInputStream(imageBytes); mcis = new MemoryCacheImageInputStr eam(bais); Iterator<ImageReader> itr = ImageIO.getImageReaders(mcis); while (itr.hasNext()) { ImageReader reader = (ImageReader) itr.next(); String imageName = reader.getClass().getSimpleName(); if (imageName != null && ("JPEGImageReader".equalsIgnoreCase(imageName))) { return "jpeg"; }else if (imageName != null && ("JPGImageReader".equalsIgnoreCase(imageName))) { return "jpg"; }else if (imageName != null && ("pngImageReader".equalsIgnoreCase(imageName))) { return "png"; } } } catch (Exception e) { // TODO: handle exception } return null; }