/// <summary> /// Appy filter. /// </summary> /// <param name="bmData">Bitmap data</param> private unsafe void ApplyYCbCr(BitmapData bmData) { float[][,] ycbcr = BitmapMatrix.ToYCbCr(bmData, true); this.filter.Apply(ycbcr[0]); BitmapMatrix.FromYCbCr(ycbcr, bmData); return; }
/// <summary> /// Converts a Bitmap to an YCbCr structure with or without alpha-channel. /// </summary> /// <param name="Data">Bitmap</param> /// <param name="alpha">Alpha-channel</param> /// <returns>YCbCr structure array</returns> public static float[][,] ToYCbCr(this Bitmap Data, bool alpha = false) { BitmapData bmData = BitmapFormat.Lock32bpp(Data); float[][,] rgb = BitmapMatrix.ToYCbCr(bmData, alpha); BitmapFormat.Unlock(Data, bmData); return(rgb); }