{
byte[] fileHeader = new byte[Header.Length];
- if (fs.Read(fileHeader, 0, fileHeader.Length) < Header.Length)
+ if (fs.Read(fileHeader, HeaderOffset, fileHeader.Length) < Header.Length)
{
return false;
}
internal abstract byte[] Header { get; }
+ internal abstract int HeaderOffset { get; }
+
#region IDisposable Support
private bool _disposed = false;
}
internal override byte[] Header => _header;
+
+ internal override int HeaderOffset => 0;
}
/// <summary>
}
internal override byte[] Header => _header;
+
+ internal override int HeaderOffset => 0;
}
/// <summary>
}
internal override byte[] Header => _header;
+
+ internal override int HeaderOffset => 0;
}
/// <summary>
}
internal override byte[] Header => _header;
+
+ internal override int HeaderOffset => 0;
}
/// <summary>
}
internal override byte[] Header => _header;
+
+ internal override int HeaderOffset => 8;
+ }
+
+ /// <summary>
+ /// Provides the ability to decode the HEIF (High Efficiency Image File Format) encoded images.
+ /// </summary>
+ /// <since_tizen> 9 </since_tizen>
+ public class HeifDecoder : ImageDecoder
+ {
+ private static readonly byte[] _header = { (byte)'f', (byte)'t', (byte)'y', (byte)'p'};
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HeifDecoder"/> class.
+ /// </summary>
+ /// <remarks><see cref="ImageDecoder.InputFormat"/> will be the <see cref="ImageFormat.Heif"/>.</remarks>
+ /// <since_tizen> 9 </since_tizen>
+ public HeifDecoder() : base(ImageFormat.Heif)
+ {
+ }
+
+ internal override byte[] Header => _header;
+
+ internal override int HeaderOffset => 4;
}
}