コード例 #1
0
        public static ImageMatrix <Color> FromBitmapSource(BitmapSource bitmap, OptimizeMode optimizeMode)
        {
            var height = bitmap.PixelHeight;
            var width  = bitmap.PixelWidth;
            var stride = bitmap.PixelWidth * 4;
            var size   = bitmap.PixelHeight * stride;

            var pixelData = new byte[size];

            bitmap.CopyPixels(pixelData, stride, 0);



            var matrix = Empty <Color>(width, height, optimizeMode);

            for (var y = 0; y < height; y++)
            {
                for (var x = 0; x < width; x++)
                {
                    var idx = x * 4 + y * width * 4;

                    var blue  = pixelData[idx];
                    var green = pixelData[idx + 1];
                    var red   = pixelData[idx + 2];
                    var alpha = pixelData[idx + 3];

                    matrix[x, y] = Color.FromArgb(alpha, red, green, blue);
                }
            }

            return(matrix);
        }
コード例 #2
0
 protected void CloseIndexWriter(OptimizeMode optimizeMode)
 {
     if (optimizeMode == OptimizeMode.DoOptimization)
     {
         writer.Optimize();
     }
     writer.Close();
 }// Close Index Writer
コード例 #3
0
 public static ImageMatrix <T> Empty <T>(int width, int height, OptimizeMode optimizeMode)
 {
     if (optimizeMode == OptimizeMode.Width)
     {
         var data = new T[height][];
         for (var y = 0; y < height; y++)
         {
             data[y] = new T[width];
         }
         return(new WidthOptimizedImageMatrix <T>(data, width, height));
     }
     else
     {
         var data = new T[width][];
         for (var x = 0; x < width; x++)
         {
             data[x] = new T[height];
         }
         return(new HeightOptimizedImageMatrix <T>(data, width, height));
     }
 }
コード例 #4
0
 public GZipStreamMinifier(Stream stream, CompressionMode compressionMode, OptimizeMode optimizeMode) : base(stream, compressionMode)
 {
     OptimizeMode = optimizeMode;
 }