将图片转成字节流
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;
MemoryCacheImageInputStream
mcis = null;
try {
bais = new
ByteArrayInputStream(imageBytes);
mcis = new
MemoryCacheImageInputStream(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;
}
加载中,请稍候......