Windows应用商店-像素阵列

提问者

我在一个应用程序中工作,我需要从图像获取像素数组并使用pixels数组编辑图像。

我正在使用下一个代码从表示图像的StorageFile对象获取像素数组:

public static async Task<byte[]> GetPixelsArrayFromStorageFileAsync(
    IRandomAccessStreamReference file)
{
    using (IRandomAccessStream stream = await file.OpenReadAsync())
    {
        using (var reader = new DataReader(stream.GetInputStreamAt(0)))
        {
            await reader.LoadAsync((uint)stream.Size);
            var pixelByte = new byte[stream.Size];
            reader.ReadBytes(pixelByte);
            return pixelByte;
        }
    }
 }

现在,我的问题是:

  1. 为什么要加载6000 x 4000像素的图像,而数组只有8,941,799,这实际上是磁盘上图像的大小?
  2. 如何访问像素的RGBA通道?
菲利普·史卡昆(Filip Skakun)

您的文件具有位图的压缩版本,因此您需要先对其进行解码。我建议您将其加载到中,WriteableBitmap因为无论如何您都需要显示它,然后访问PixelBuffer位图属性以获取实际像素。您可以执行以下操作:

var writeableBitmap = new WriteableBitmap(1, 1);
await writeableBitmap.SetSourceAsync(yourFileStream);
var pixelStream = writeableBitmap.PixelBuffer.AsStream();
var bytes = new byte[pixelStream.Length];
pixelStream.Seek(0, SeekOrigin.Begin);
pixelStream.Read(bytes, 0, Bytes.Length);

// Update the bytes here. I think they follow the BGRA pixel format.

pixelStream.Seek(0, SeekOrigin.Begin);
pixelStream.Write(bytes, 0, bytes.Length);
writeableBitmap.Invalidate();

您可以在此处此处检查扩展方法以了解如何使用像素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows应用商店开发

来自分类Dev

Windows应用商店更新

来自分类Dev

Windows应用商店的应用要求

来自分类Dev

Windows应用商店中的GetInterfaces

来自分类Dev

Windows应用商店中的GetInterfaces

来自分类Dev

Windows应用商店的主题资源

来自分类Dev

Windows应用商店的无敌错误

来自分类Dev

创建Windows应用商店应用程序

来自分类Dev

Windows应用商店应用-显示PDF

来自分类Dev

Windows应用商店应用部署位置

来自分类Dev

在C ++中将像素阵列旋转90度

来自分类Dev

原始像素阵列到灰度BitmapImage

来自分类Dev

从像素阵列问题获取NSImage(快速)

来自分类Dev

在C ++中将像素阵列旋转90度

来自分类Dev

商店类实例-Windows商店应用程序

来自分类Dev

在Windows应用商店中存储数据

来自分类Dev

更改Windows应用商店标题的文本

来自分类Dev

SkiaSharp违反Windows应用商店认证

来自分类Dev

Windows应用商店中的文本,音频资源

来自分类Dev

在Windows应用商店中播放.flv视频

来自分类Dev

在Windows 8.1应用商店中处理方向

来自分类Dev

获取已安装的Windows应用商店列表

来自分类Dev

打印操作期间Windows应用商店错误

来自分类Dev

Windows应用商店消息对话框

来自分类Dev

XAML Windows应用商店分层视图

来自分类Dev

XAML Windows应用商店分层视图

来自分类Dev

更改Windows应用商店标题的文本

来自分类Dev

Windows应用商店-WriteableBitmap,blit方法

来自分类Dev

在Windows应用商店中下载文件