facebook/fresco

HEIF image Rotation issue

Open

#2,406 opened on 2019年9月23日

GitHub で見る
 (3 comments) (0 reactions) (0 assignees)Java (17,072 stars) (3,750 forks)batch import
enhancementhelp wanted

説明

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

コントリビューターガイド