, поэтому я преобразую изображение tiff с помощью ImageIO и наблюдаю странное поведение, когда изображение преобразуется нормально для одних типов, но не для других, и это не всегда так, некоторые изображения преобразуют raw или bmp, а другие - нет, даже если все изображения из одного и того же источника.
byte[] imageByteArray = Base64.getMimeDecoder().decode(imgData);
BufferedImage decodedImg = ImageIO.read(new ByteArrayInputStream(imageByteArray));
ImageIO.write(decodedImg, format, os);
String encodedString = Base64.getEncoder().encodeToString(os.toByteArray());
Вывод для допустимых типов: System.out.println(Arrays.toString(ImageIO.getWriterFormatNames()));
[JPEG 2000, JPG, jpg, JPEG2000, tiff, bmp, BMP, gif, GIF, WBMP, png, PNG, raw, RAW, JPEG, pnm, PNM, tif, TIF, TIFF, jpeg2000, wbmp, jpeg, jpeg 2000]
Форматы, которые работают: [jpg, JPG, JPEG, tiff, TIF, tif, TIFF, png, gif, GIF, jpeg]
Форматы, которые НЕ работают: [JPEG2000, JPEG 2000, raw, RAW, pnm, PNM, jpeg2000, jpeg 200]
Форматы, которые «работают», но возвращают false: [wbmp, WBMP, bmp, BMP]
Для них я могу получить данные изображения, такие как высота, от decodedImg.getHeight()