/// <summary> /// Initializes a new instance of the <see cref="HeifImage"/> class. /// </summary> /// <param name="width">The width.</param> /// <param name="height">The height.</param> /// <param name="colorspace">The color space.</param> /// <param name="chroma">The chroma.</param> /// <exception cref="ArgumentOutOfRangeException"> /// <paramref name="width"/> is less than or equal to zero. /// /// -or- /// /// <paramref name="height"/> is less than or equal to zero. /// </exception> /// <exception cref="HeifException"> /// A LibHeif error occurred. /// /// -or- /// /// The LibHeif version is not supported. /// </exception> public HeifImage(int width, int height, HeifColorspace colorspace, HeifChroma chroma) { Validate.IsPositive(width, nameof(width)); Validate.IsPositive(height, nameof(height)); LibHeifVersion.ThrowIfNotSupported(); var error = LibHeifNative.heif_image_create(width, height, colorspace, chroma, out this.image); error.ThrowIfError(); // The caller can set a color profile after the image has been created. this.cachedImageColorProfile = null; this.fetchedColorProfileFromImage = true; this.sync = new object(); this.Width = width; this.Height = height; this.Colorspace = colorspace; this.Chroma = chroma; }