Показанные изображения повернуты в кодовое имя один - PullRequest
1 голос
/ 09 мая 2019

Я разрабатываю приложение Codename One для iOS.

Я дал пользователю возможность делать снимки или загружать их из галереи устройства. После этого приложение отображает картинки в метках (инкапсулированных в 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?

...