显示的图像以代号One旋转

时间:2019-05-09 09:38:51

标签: ios codenameone

我正在为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数据?

0 个答案:

没有答案