我正在为iOS开发一个Codename One应用。
我为用户提供了拍摄照片或从设备的图库中加载照片的选项。之后,该应用程序以标签(封装在BoxLayout中)显示图片。 当我以人像模式拍摄照片时,一切正常,但是当我以风景模式拍摄照片时,该照片显示为旋转(旋转90°)。
代码如下:
String filePath = Capture.capturePhoto();
if (filePath != null) {
try {
Image img = Image.createImage(filePath);
if (img != null){
setImageToContainer(img);
}
}
catch (IOException err) {
ToastBar.showErrorMessage("Problemi con le immagini: " + err.getMessage());
completeImageName = null;
fileImageName = null;
}
}
private void setImageToContainer(Image img){
Label imgLbl = new Label();
Style s = UIManager.getInstance().getComponentStyle("Button");
FontImage p = FontImage.createMaterial(FontImage.MATERIAL_PORTRAIT, s);
EncodedImage placeholder = EncodedImage.createFromImage(p.scaled(p.getWidth() * 3, p.getHeight() * 4), false);
imgLbl.setIcon(placeholder);
list.add(imgLbl);
//Scalo l'immagine
if(img.getWidth() > imgLbl.getParent().getWidth())
img = img.scaledWidth(imgLbl.getParent().getWidth());
if(img.getHeight()> imgLbl.getParent().getHeight())
img = img.scaledHeight(imgLbl.getParent().getHeight());
imgLbl.setIcon(img);
list.repaint();
}
阅读that answer后,我了解到 Image.createImage(filePathToImage)方法考虑了EXIF数据,以便正确旋转图像。
我该如何解决我的问题?有没有办法获取EXIF数据?