本文告诉大家如何在 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 欢迎小伙伴访问

WPF 创建空白图片的更多相关文章

  1. 利用WPF创建含多种交互特性的无边框窗体

    咳咳,标题一口气读下来确实有点累,让我先解释一下.另外文章底部有演示程序的下载. 本文介绍利用WPF创建一个含有以下特性的窗口: 有窗口阴影,比如QQ窗口外围只有几像素的阴影: 支持透明且无边框,为了 ...

  2. wpf下的图片放大缩小

    WPF下实现图片的放大缩小移动   在windows 7里面有自带的图片查看器,这个软件可以打开一张图片然后以鼠标在图片中的焦点为原点来进行缩放,并且放大后可以随意拖动.下面我们在WPF中实现这个功能 ...

  3. 【Android】 图片编辑:创建圆角图片

    创建圆角图片的方式大同小异,最简单的就是 9.png 美工做出来的就是.这种最省事直接设置就可以. 另外一种就是通过裁剪 这里的剪裁指的是依据原图我们自己生成一张新的bitmap,这个时候指定图片的目 ...

  4. UE4创建空白关卡并添加碰撞体

    让我们接着上次继续学习UE4引擎,今天我们学习下怎样创建空白的关卡以及添加碰撞物体. 一. 创建空白关卡 1) 点击文件 -> 新建关卡(或者按快捷键Ctrl+N). 2) 你可以选择Defau ...

  5. nginx空白图片(empty_gif模块)

    用过百度统计的兄弟有没有注意到百度使用1x1的空白图片传递统计参数,自己做异步统计的兄弟是否使用静态文件来传递参数.为什么使用空白图片呢,而不是自己存放一张小图呢,nginx里面的空白图片是保存在内存 ...

  6. UE4新手编程之创建空白关卡和添加碰撞体

    让我们接着上次继续学习UE4引擎,今天我们学习下怎样创建空白的关卡以及添加碰撞物体. 一. 创建空白关卡 1) 点击文件 -> 新建关卡(或者按快捷键Ctrl+N). 2) 你可以选择Defau ...

  7. MVVM模式下WPF动态绑定展示图片

    MVVM模式下WPF动态展示图片,界面选择图标,复制到项目中固定目录下面,保存到数据库的是相对路径,再次读取的时候是根据数据库的相对路径去获取项目中绝对路径的图片展示. 首先在ViewModel中 / ...

  8. WPF获得PNG图片外观Path数据

    原文:WPF获得PNG图片外观Path数据        WPF开发界面的时候,用的最多的就是自定义控件模板,开发人员需要根据UI的设计,做出符合要求的自定义控件.但是在一些特殊情况下,UI的设计可能 ...

  9. 使用WPF创建画图箭头

    原文:使用WPF创建画图箭头 今天要给leader line画个箭头,所以就google一下,找到下面的文章,写的不错,可以实现我的需求,所以就摘录下来. 我把源代码中的arraw.cs加入到我的工程 ...

  10. WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片

    原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片 1.图片文件转换成Visual对象 private Visual CreateVisual(string imag ...

随机推荐

  1. 记录--for in 和 for of的区别详解以及为for in的输出顺序

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 for in 和 for of 相对于大家肯定都不陌生,都是用来遍历属性的没错.那么先看下面的一个例子: 例1 const obj = { ...

  2. AtCoder Beginner Contest 347

    AT link Problem A and B 略. Problem C 按照模 \(a + b\) 分类,记录最大值和最小值,如果差值小于等于假期时间即可,否则还需要判断按照 \(d_i = D_i ...

  3. #拓扑排序#洛谷 5157 [USACO18DEC]The Cow Gathering P

    题目 给出一棵树和一些限制关系 \((a_i,b_i)\), 一种合法的删点序列当且仅当删除一个点之后树的大小不超过 1 或不存在孤立点, 并且 \(a_i\) 要比 \(b_i\) 先删除,问 \( ...

  4. C# Replace方法

    例子: string tStw = "Run Status"; string tStw1 = tStw.Replace("Run Status", " ...

  5. MogDB 2.1.1 初始化参数概要说明

    MogDB 2.1.1 初始化参数概要说明 本文出处:https://www.modb.pro/db/394787 MogDB 数据库安装完成后,官方文档提供了刷新参数的脚本,推荐执行脚本来进行初始化 ...

  6. Linux之隔离技术

    前言 Linux的内核有两大特性Namespace和CGroup,这两种特性可以在Linux主机上实现主机名.用户.网络等全局资源的隔离,也是实现网络虚拟化.容器技术的基础. 命名空间 Linux N ...

  7. ViT:拉开Trasnformer在图像领域正式挑战CNN的序幕 | ICLR 2021

    论文直接将纯Trasnformer应用于图像识别,是Trasnformer在图像领域正式挑战CNN的开山之作.这种简单的可扩展结构在与大型数据集的预训练相结合时,效果出奇的好.在许多图像分类数据集上都 ...

  8. CTFshow Reverse 逆向4 学习记录

    题目 分析过程 是一个无壳,64位的文件 丢到IDA里面,找到main函数 1 int __cdecl __noreturn main(int argc, const char **argv, con ...

  9. Android 开发入门(5)

    0x07 数据存储 (1)共享参数 SharedPreferences a. 用法 用法 SharedPreferences 是 Android 的一个轻量级存储工具,采用的存储结构为键值对的方式 共 ...

  10. MMDeploy部署实战系列【第五章】:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理

    MMDeploy部署实战系列[第五章]:Windows下Release x64编译mmdeploy(C++),对TensorRT模型进行推理 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善 ...