/// <summary>
        /// 指定1画素のGamutを返す
        /// </summary>
        /// <param name="bitmap">対象画像</param>
        /// <param name="pointRate">対象画素(割合)</param>
        /// <returns>画素値(BGR)</returns>
        public static Gamut ReadPixel(this BitmapSource bitmap, Point pointRate)
        {
            int rectX = (int)Math.Round(pointRate.X * bitmap.PixelWidth);
            int rectY = (int)Math.Round(pointRate.Y * bitmap.PixelHeight);

            return(bitmap.GetPixelAverage(new Int32Rect(rectX, rectY, 1, 1)));
        }
        /// <summary>
        /// 指定矩形のGamutを返す
        /// </summary>
        /// <param name="bitmap">対象画像</param>
        /// <param name="rectRate">対象領域(割合)</param>
        /// <returns>画素値(BGR)</returns>
        public static Gamut ReadPixelsAverage(this BitmapSource bitmap, Rect rectRate)
        {
            int rectX      = (int)Math.Round(rectRate.X * bitmap.PixelWidth);
            int rectY      = (int)Math.Round(rectRate.Y * bitmap.PixelHeight);
            int rectWidth  = (int)Math.Round(rectRate.Width * bitmap.PixelWidth);
            int rectHeight = (int)Math.Round(rectRate.Height * bitmap.PixelHeight);

            return(bitmap.GetPixelAverage(new Int32Rect(rectX, rectY, rectWidth, rectHeight)));
        }