Во-первых, мне нужно преобразовать изображение в Base64, а затем вычислить DPI изображения, преобразовав base64 в буферизованное изображение.
Вот код, который я пробовал и который хорошо работает для image.PNG (.png), но возвращают -1 (неправильный вывод) в других форматах, таких как (.jpg) ...! Но мне нужно, чтобы это работало и для других форматов.
private static float base64toBuffer(String inputbuffer) throws IOException, ImageReadException{
byte[] Rimage=decodeToImage(inputbuffer);
final org.apache.sanselan.ImageInfo imageInfo = Sanselan.getImageInfo(Rimage);
final int physicalWidthDpi = imageInfo.getPhysicalWidthDpi();
final int physicalHeightDpi = imageInfo.getPhysicalHeightDpi();
return physicalWidthDpi;
}
private static byte[] buffertoByte(String imageString) {
byte[] imageByte;
try {
BASE64Decoder decoder = new BASE64Decoder();
imageByte = decoder.decodeBuffer(imageString);
return imageByte;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}