首页 > 解决方案 > 在代号一中旋转显示的图像

问题描述

我正在为 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();
}

阅读该答案,我了解Image.createImage(filePathToImage)方法考虑了 EXIF 数据,以便正确旋转图像。

我该如何解决我的问题?有没有办法获取 EXIF 数据?

标签: ioscodenameone

解决方案


推荐阅读