Esempio n. 1
0
        public MainWindow()
        {
            this.InitializeComponent();

            // 画像サイズを指定してオブジェクトを作成
            var buffer = new Rgb24ImageBuffer(850, 600);

            // 透過画像を扱い以下を指定する
            // var buffer = new ArgbImageBuffer(850, 600);

            // 全ての画素を列挙する場合、ImageBufferのForEachを使用できる
            buffer.ForEach((x, y) =>
            {
                if (x % 10 > 6)
                {
                    return(Color.FromRgb(160, 160, 160)); // しましまを書く
                }

                return(Color.FromRgb(40, 40, 40)); // 基本的に灰色

                // 透過する場合は以下のように指定
                // Color.FromArgb(128, 40, 40, 40);
            });

            // BitmapImageに画像を設定する
            this.img.Source = buffer.ToImageSource();

            // ブラシを作成する場合以下のように書く
            var brush = new ImageBrush()
            {
                ImageSource = buffer.ToImageSource()
            };
        }
Esempio n. 2
0
        // needs "System.Drawing.dll"

        /// <summary>
        /// 指定したファイルパスからバッファーを作成します。
        /// </summary>
        public static Rgb24ImageBuffer CreateBuffer(string path)
        {
            var _bitmap = new System.Drawing.Bitmap(path);
            var buffer  = new Rgb24ImageBuffer(_bitmap.Width, _bitmap.Height);

            buffer.ForEach((x, y) =>
            {
                System.Drawing.Color color = _bitmap.GetPixel(x, y);
                return(Color.FromRgb(color.R, color.G, color.B));
            });

            return(buffer);
        }