facebook/fresco

HEIF image Rotation issue

Open

#2,406 创建于 2019年9月23日

在 GitHub 查看
 (3 评论) (0 反应) (0 负责人)Java (3,750 fork)batch import
enhancementhelp wanted

仓库指标

Star
 (17,072 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

Description

I have some problems when display heif format image,The image rotation is wrong. I find some code with the issue ,the method parseMetaData of EncodedImage class ,when it handle "HEIF" ImageFormat value,it jump fetch Orientation infomation,but the file‘s fileExtension is jpg and the format is Heif 。

`

public void parseMetaData() {

final ImageFormat imageFormat = ImageFormatChecker.getImageFormat_WrapIOException(
    getInputStream());

mImageFormat = imageFormat;

// BitmapUtil.decodeDimensions has a bug where it will return 100x100 for some WebPs even though
// those are not its actual dimensions
final Pair<Integer, Integer> dimensions;

if (DefaultImageFormats.isWebpFormat(imageFormat)) {

  dimensions = readWebPImageSize();

} else {
  dimensions = readImageSize();
}
if (imageFormat == DefaultImageFormats.JPEG && mRotationAngle == UNKNOWN_ROTATION_ANGLE) {
  // Load the JPEG rotation angle only if we have the dimensions
  if (dimensions != null) {
    mExifOrientation = JfifUtil.getOrientation(getInputStream());
    mRotationAngle = JfifUtil.getAutoRotateAngleFromOrientation(mExifOrientation);
  }
} else {
  mRotationAngle = 0;
}

}

`

Solution

Additional Information

  • Fresco version: 1.10.0
  • Platform version: android 8.0

贡献者指南