/// <summary> /// Gets image handle color profile. /// </summary> /// <returns>The image handle color profile.</returns> /// <exception cref="HeifException"> /// The color profile type is not supported. /// /// -or- /// /// A LibHeif error occurred. /// </exception> private unsafe HeifColorProfile GetImageHandleColorProfile() { HeifColorProfile profile = null; var colorProfileType = LibHeifNative.heif_image_handle_get_color_profile_type(this.imageHandle); switch (colorProfileType) { case heif_color_profile_type.None: break; case heif_color_profile_type.Nclx: profile = new HeifNclxColorProfile(this.imageHandle); break; case heif_color_profile_type.IccProfile: case heif_color_profile_type.RestrictedIcc: profile = new HeifIccColorProfile(this.imageHandle); break; default: throw new HeifException(Resources.ColorProfileTypeNotSupported); } return(profile); }
/// <summary> /// Gets image handle color profiles. /// </summary> /// <returns>The image handle color profiles.</returns> /// <exception cref="HeifException"> /// The color profile type is not supported. /// /// -or- /// /// A LibHeif error occurred. /// </exception> private unsafe ImageHandleColorProfiles GetImageHandleColorProfiles() { HeifIccColorProfile iccProfile; HeifNclxColorProfile nclxProfile; if (LibHeifVersion.Is1Point10OrLater) { iccProfile = HeifIccColorProfile.TryCreate(this.imageHandle); nclxProfile = HeifNclxColorProfile.TryCreate(this.imageHandle); } else { // LibHeif versions prior to 1.10 only support one color profile per image. var colorProfileType = LibHeifNative.heif_image_handle_get_color_profile_type(this.imageHandle); switch (colorProfileType) { case heif_color_profile_type.None: iccProfile = null; nclxProfile = null; break; case heif_color_profile_type.Nclx: iccProfile = null; nclxProfile = HeifNclxColorProfile.TryCreate(this.imageHandle); break; case heif_color_profile_type.IccProfile: case heif_color_profile_type.RestrictedIcc: iccProfile = HeifIccColorProfile.TryCreate(this.imageHandle); nclxProfile = null; break; default: throw new HeifException(Resources.ColorProfileTypeNotSupported); } } return(new ImageHandleColorProfiles(iccProfile, nclxProfile)); }