Java で画像のフォーマットを判定する


以下のコードを実行するには、JimiProClasses.jarが必要。
DataHandlerがINパラメータになってるけど、ここはStreamとかbyte[]とかのほうが汎用的かも


public boolean isValidImageFileFormat(DataHandler dataHandler) {

ImageInputStream iis;
try {

iis = ImageIO.createImageInputStream(dataHandler.getInputStream());
Iterator readers = ImageIO.getImageReaders(iis);
if (readers.hasNext()) {

ImageReader reader = (ImageReader) readers.next();
return isValidAvatarExt("." + reader.getFormatName());

} else {

return false;
}

} catch (IOException e) {

e.printStackTrace();
}
}

public boolean isValidImageExt(String filename) {

if (StringUtils.isEmpty(filename)) {

return false;
}

if (filename.endsWith(".gif") || filename.endsWith(".GIF")
|| filename.endsWith(".jpeg") || filename.endsWith(".JPEG")
|| filename.endsWith(".jpg") || filename.endsWith(".JPG")
|| filename.endsWith(".png") || filename.endsWith(".PNG")) {

return true;
}

return false;
}

0 コメント: