Java 垂直图像作为水平图像加载
我正在编写一个简单的应用程序,它基本上加载一些图片,并将它们显示给用户。问题是,当我初始化手机拍摄的垂直图像时,它无法识别图像是垂直的,只是交换宽度和高度 否则,如果我加载一个垂直图像,例如从互联网下载的图像,一切正常 您可以看到我的应用程序和两张加载的图片。左边是下载的,垂直显示。但我手机上的那张照片并没有垂直显示 这是我的课程/代码:Java 垂直图像作为水平图像加载,java,image,javafx,Java,Image,Javafx,我正在编写一个简单的应用程序,它基本上加载一些图片,并将它们显示给用户。问题是,当我初始化手机拍摄的垂直图像时,它无法识别图像是垂直的,只是交换宽度和高度 否则,如果我加载一个垂直图像,例如从互联网下载的图像,一切正常 您可以看到我的应用程序和两张加载的图片。左边是下载的,垂直显示。但我手机上的那张照片并没有垂直显示 这是我的课程/代码: import javafx.scene.CacheHint; import javafx.scene.image.Image; import javafx.s
import javafx.scene.CacheHint;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
public class Picture {
String name;
String path;
String res;
String size;
ImageView iv;
Image image;
public Picture(String name, String path) {
this.image = new Image("file:" + path);
this.name = name;
this.path = path;
this.res = image.getWidth() + " x " + image.getHeight();
this.iv = new ImageView(image);
this.iv.setFitHeight(180);
this.iv.setFitWidth(180);
this.iv.setPreserveRatio(true);
this.iv.setCache(true);
this.iv.setCacheHint(CacheHint.SPEED);
this.iv.setStyle("-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 10, 0, 0, 0);");
}
}
这是我的第一个问题,所以不要因为布局而责备我;)
对我的代码或问题的任何反馈都将不胜感激。
如果您需要完整的代码,请告诉我
感谢您的帮助我没有听说/遇到过javafx正在旋转图像。我很确定图像是以文件系统中保存的方式显示的。它在图像查看器/编辑器中的显示是否不同?如果不是的话,你的应用程序应该如何区分翻出的图片和普通图片?@fabian-my Iphone SE有时会决定图片应该是水平的还是垂直的,并以这种方式存储信息。视其查看方式而定,会更改其外观旋转。例如,在浏览器中,仅查看图像将正确显示图像,并将其嵌入到网页(论坛等)中,并且图像是横向的。甚至可以/将逐步侧向加载。始终必须在GIMP中打开我的东西,并确保在保存之前正确旋转。OP-为了跟进我对Fabian的评论,检查EXIF数据以获取旋转信息-请参阅@fabian-错误显示的图像在正常的windows目录中看起来很好,但感谢您的回复,我将继续查找solution@ivanivan-我对swing中的BuffereImage进行了同样的尝试,但我一直在寻找最干净的解决方案,所以我会继续寻找。