WPF 创建空白图片

本文告诉大家如何在 WPF 创建空白图片,可以创建1像素图片

可以使用 BitmapSource 的 Create 方法创建空白图片

            // 限制不能创建小于2x2的图片
            const int width = 2;
            const int height = width;
            
            BitmapSource.Create(width, height, 96, 96,
                PixelFormats.Indexed1,
                new BitmapPalette(new List<Color> { Colors.Transparent }),
                new byte[width * height], 1);

上面这个方法只有创建 2x2 的图片,而创建1像素图片可以使用下面方法

            const int width = 1;
            const int height = width;
            const double dpi = 96;
            // R G B 三个像素
            const int colorLength = 3;

            var image = BitmapSource.Create(width, height, dpi, dpi, PixelFormats.Bgr24, null, new byte[colorLength],
                colorLength);

空白图片保存到文件,使用png和jpg等几个格式里面,文件的大小如下

.png byte count = 119
.jpg byte count = 631
.bmp byte count = 58
.gif byte count = 41

也就是说存放为 gif 对于这张图片最省文件体积

以下是 bmp 文件的二进制

0x42,0x4D,0x3A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0x0E,0x00,0x00,0xC4,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

本文代码放在 github 欢迎小伙伴访问

posted @ 2020-09-12 14:33  lindexi  阅读(38)  评论(0编辑  收藏