당신이 사용하는 일반 ImageIO에서 할 수
: 당신이 IIOMetadata
조사 할 수 있습니다 고급 속성에 대한
ImageInputStream stream = ImageIO.createImageInputStream(new ByteArrayInputStream(imgData); // assuming imgData is byte[] as in your question
Iterator<ImageReader> readers = ImageIO.getImageReaders(stream);
if (!readers.hasNext()) {
// We don't know about this format, give up
}
ImageReader reader = readers.next();
reader.setInput(stream);
// Now query for the properties you like
// Dimensions:
int width = reader.getWidth(0);
int height = reader.getHeight(0);
// File format (you can typically use the first element in the array):
String[] formats = reader.getOriginatingProvider().getFormatNames();
// Color model (note that this will return null for most JPEGs, as Java has no YCbCr color model, but at least this should get you going):
ImageTypeSpecifier type = reader.getRawImageType(0);
ColorModel cm = type.getColorModel();
// ...etc...
을,하지만 대부분의 시간은 내가 필요하지 않은 것을 발견 (그리고 API는 너무 많은 번거 로움).
Andrew가 언급 한대로 ImageIO.getReaderFileSuffixes()
으로 나열된 형식으로 제한됩니다. 특정 형식에 대한 플러그인을 추가해야 할 수도 있습니다.
질문에 대한 답변을 찾았습니까? – feisal
@feisal 오래된 프로젝트에서 유감입니다. 내가 어떻게했는지 모르겠다. 내 코드 보관소를 살펴보고 찾으려하지만 얼마나 오래 걸릴지 알 수는 없습니다 –