前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >win10 uwp 如何将像素数组转 png 文件

win10 uwp 如何将像素数组转 png 文件

作者头像
林德熙
发布于 2019-04-22 07:36:25
发布于 2019-04-22 07:36:25
1.5K00
代码可运行
举报
文章被收录于专栏:林德熙的博客林德熙的博客
运行总次数:0
代码可运行

堆栈的小伙伴好奇他有一个数组,数组里面是 BGRA 的像素,他需要将这个数组转换为 PNG 文件 在 UWP 可以使用 BitmapEncoder 将像素数组加密为文件

在使用 BitmapEncoder 之前需要要求有像素数组,像素数组的规律有要求,按照 BGRA 按照顺序的数组,同时要求知道像素的原图的像素宽度。因为存放像素数组使用的是一维的数组,如果不知道图片宽度,那么就不知道这个图片的像素是对应数组哪个

通过下面方法可以转换像素数组到文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        private async Task ByteToPng(byte[] byteList, int width, int height, IRandomAccessStream file)
        {
            try
            {
                var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, file);
                encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint) width, (uint) height, 96,
                    96, byteList);
                await encoder.FlushAsync();
            }
            catch (Exception e)
            {
            }
        }

这里的 IRandomAccessStream 就是 StorageFile 打开文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        private async Task SaveToFileAsync(byte[] byteList, int width, int height, IStorageFile file)
        {
            using (var stream = (await file.OpenStreamForWriteAsync()).AsRandomAccessStream())
            {
                await ByteToPng(byteList, width, height, stream);
            }
        }

通过这个方法,可以传入数组和图片的宽度和高度,保存的文件,就可以将像素数组保存到 png 文件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
win10 uwp 如何创建修改保存位图 创建保存图片在 Image 控件使用WriteableBitmap 转换通过读写像素转换 CanvasBitmap
在 UWP 使用底层的图像渲染就是使用 Softwarebitmap ,这个类提供直接数据修改,可以使用这个类进行软渲染。实际上 Softwarebitmap 和 WriteableBitmap 是差不多的。但是 Softwarebitmap 可以支持 WriteableBitmap 、 Direct3D 和代码修改。通过 Softwarebitmap 可以修改转换不同的像素格式和透明通道,支持低级修改像素。作为一个通用的底层类在很多性能要求比较高的地方用到,如 CapturedFrame、VideoFrame、FaceDetector。下面来告诉大家如何使用。
林德熙
2018/09/18
2.2K0
win10 uwp 如何创建修改保存位图
            创建保存图片在 Image 控件使用WriteableBitmap 转换通过读写像素转换 CanvasBitmap
win10 uwp 修改图片质量压缩图片
本文告诉大家如何在 UWP 通过修改图片的质量减少图片大小,这个方法只支持输出 jpg 文件
林德熙
2022/08/04
6610
win10 uwp 存放网络图片到本地 下载图片保存图片从本地打开所有代码Nuget安装Microsoft.Toolkit.Uwp
有时候我们的网络很垃圾,我的的UWP要在第一次打开网络图片,就把图片存放到本地,下次可以从本地打开。 有时候用户使用的是流量网络,不能每次都联网下载。 我们不得在应用存放用户打开的图片。 这就是先把图片下载,然后显示出来,存放到本地,接着下次要使用就可以从本地获取。 最好这个和我们用户是透明,我们不知道图片在哪,是本地还是网络,只要给一个Uri就有一个图片。
林德熙
2019/03/13
1.3K0
WPF 尝试使用 WinML 做一个简单的手写数字识别应用
最近我看了微软的 AI 训练营之后,似乎有点了解 Windows Machine Learning 和 DirectML 的概念,于是我尝试实践一下,用 WPF 写一个简单的触摸手写输入的画板,再使用大佬训练好的 mnist.onnx 模型,对接 WinML 实现一个简单的手写数字识别应用
林德熙
2023/12/11
5020
WPF 尝试使用 WinML 做一个简单的手写数字识别应用
win10 uwp 九幽图床
图片加水印,我的方法,简单,一个好的方法是毒逆天大神的图片加水印方法或http://daily.zhihu.com/story/8812028
林德熙
2019/03/13
4870
【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )
在上一篇博客 【Android 内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 ) 中 对 libjpeg-turbo 函数库进行了交叉编译 , 拷贝了相应的头文件和静态库到 Android Studio 项目中 , 并配置了 CMakeList.txt 构建脚本 , 和 build.gradle 构建脚本 , 本篇博客中开始进行代码编写 ;
韩曙亮
2023/03/27
1.2K0
win10 UWP 访问网页
Windows10 UWP 要访问 csdn博客,可以使用Windows.Web.Http.HttpClient,下面尝试访问一下我的博客 http://blog.csdn.net/lindexi_gd/article/details/50392343
林德熙
2022/08/04
5550
Win8 文件相关操作
var openPicker = new FileOpenPicker                 {                     ViewMode = PickerViewMode.Thumbnail,                     SuggestedStartLocation = PickerLocationId.ComputerFolder                 };                 openPicker.FileTypeFilter.Add("*");                 StorageFile file = await openPicker.PickSingleFileAsync();
井九
2024/10/12
990
win10 uwp 读取文本GBK错误
本文讲的是解决UWP文本GBK打开乱码错误,如何去读取GBK,包括网页GBK。最后本文给出一个方法追加文本。
林德熙
2018/09/18
1.3K0
win10 uwp 毛玻璃 Compositor 创建毛玻璃win2D最简单方法
毛玻璃在UWP很简单,不会和WPF那样伤性能。 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃。
林德熙
2018/09/18
1.1K0
win10 uwp 毛玻璃
            Compositor 创建毛玻璃win2D最简单方法
win10 uwp 读取保存WriteableBitmap 、BitmapImage 保存 WriteableBitmap 到文件从文件读 WriteableBitmapIma
我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap。关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说。主要说的是 BitmapImage 和 WriteableBitmap 、二进制 byte 的互转。
林德熙
2018/09/18
2K0
win10 uwp 读取保存WriteableBitmap 、BitmapImage
            保存 WriteableBitmap 到文件从文件读 WriteableBitmapIma
win10 uwp 修改图片质量压缩图片
本文告诉大家如何在 UWP 通过修改图片的质量减少图片大小,这个方法只支持输出 jpg 文件
林德熙
2019/04/09
1.1K0
win10 uwp 截图 获取屏幕显示界面保存图片 水印
本文主要讲如何保存我们的屏幕显示的控件,保存为图片。这个也就是截图,截我们应用显示的,我们应用之外的不截图。
林德熙
2018/09/18
1.3K0
win10 uwp 截图 获取屏幕显示界面保存图片
            水印
UWP 写入图片 Exif 信息
本文告诉大家如何在 UWP 中,保存图片的时候,写入 Exif 信息,也就是如照片的 相机型号 制造商 光圈值等信息的写入
林德熙
2021/12/24
9250
win10 uwp 存放网络图片到本地 下载图片保存图片从本地打开所有代码Nuget安装
有时候我们的网络很垃圾,我的的UWP要在第一次打开网络图片,就把图片存放到本地,下次可以从本地打开。 有时候用户使用的是流量网络,不能每次都联网下载。 我们不得在应用存放用户打开的图片。 这就是先把图片下载,然后显示出来,存放到本地,接着下次要使用就可以从本地获取。 最好这个和我们用户是透明,我们不知道图片在哪,是本地还是网络,只要给一个Uri就有一个图片。
林德熙
2018/09/18
1.3K0
win10 uwp 使用油墨输入 保存,修改,加载inkUWP 手写清理笔画手写识别无法识别手写语音
现在很多人还是使用笔和纸来记录,那么可以在电脑输入方式和之前使用的方式一样,很多用户觉得会方便。在win10 我们有一个简单的方法去让用户输入,InkCanvas。现在edge,OneNote这些都有使用InkCanvas,我们可以在我们的手机上手写,我们也可以在我们电脑上用鼠标写,然后我们可以把我们写的保存图片,可以识别文字。
林德熙
2018/09/18
1.5K0
win10 uwp 使用油墨输入
            保存,修改,加载inkUWP 手写清理笔画手写识别无法识别手写语音
Windows Community Toolkit: 使用CameraPreview拍照
在UWP应用里,如果我们需要调用设备的摄像头拍照并保存到文件,这曾经是比较复杂的。开发者需要了解许多知识,也要写一定量代码才能完成(就像你可以从微软样例代码(https://github.com/Microsoft/Windows-universal-samples)中找到的Camera相关例子那样)。实际上,在许多情况下,我们仅需要用最简单的默认摄像头选项来拍照。这种场合里我们的关注点在应用逻辑本身,而不需要花费数个小时在如何调通摄像头代码上。
Edi Wang
2019/07/08
6090
Windows Community Toolkit: 使用CameraPreview拍照
win10 uwp 判断文件存在
本文主要翻译http://stackoverflow.com/questions/37119464/uwp-check-if-file-exists/37152526#37152526 我们有多种方法可以判断文件是否存在,最简单的方法是异常
林德熙
2018/09/18
7830
win10 uwp 关联文件
上面的图就是我添加 jpg 关联的方法,建议是写多一些。如果是作为测试,想看这个功能是如何使用,就只需要写文件类型。
林德熙
2018/09/19
8610
win10 uwp 关联文件
UWP 从文件 StorageFile 转 SoftwareBitmap 图片方法
本文告诉大家如何在 UWP 从 文件 StorageFile 转 SoftwareBitmap 图片的方法
林德熙
2022/08/12
3540
推荐阅读
相关推荐
win10 uwp 如何创建修改保存位图 创建保存图片在 Image 控件使用WriteableBitmap 转换通过读写像素转换 CanvasBitmap
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文