c# - 如何创建包含真实图像的字节数组?

标签 c# arrays image-conversion

请看下面我的代码。

我想用可以转换成真实图像的数据创建一个字节数组。当我尝试运行这段代码时,我得到一个 argumentException。为了创建一个合法的字节数组来保存图像数据,我需要在 For 循环中做什么?我不想使用真实图像并将其转换为字节数组,我想创建一个随机数形式的图像。

    Random Rnd = new Random();

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        Byte[] ByteArray = new Byte[1000];

        for (int i = 0; i < 1000; i++)
        {
            ByteArray[i] = Convert.ToByte(Rnd.Next(9));                
        }
        ImageConverter Convertor = new ImageConverter();
        BitmapImage image = (BitmapImage)Convertor.ConvertFrom(ByteArray);
        MyImage.Source = image;
    }

请注意,我不想使用 WinForms 类型或库,如 system.drawing/bitmap - 我只想使用 WPF 技术。

最佳答案

这就是您正在寻找的解决方案,仅使用 WPF 技术。

请注意,步幅参数计算中使用的常量值 16 直接来自于我使用的是 16 位像素格式。

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        Random rnd = new Random();

        Byte[] ByteArray = new Byte[(int)MyImage.Width * (int)MyImage.Height * 3];

        rnd.NextBytes(ByteArray);

        var image = BitmapSource.Create((int) MyImage.Width, (int) MyImage.Height, 72, 72,
            PixelFormats.Bgr565, null, ByteArray, (4*((int)MyImage.Width * 16 + 31)/32));

        MyImage.Source = image;
    }

关于c# - 如何创建包含真实图像的字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981467/

相关文章:

python - 将图像的内存大小从RGB增加到Grey,OpenCV

java - 从包含多个工作表和大量数据的 Excel 工作表生成图像?

image - MATLAB M x N x 24 数组到位图

c# - 在 asp.net 路径中使用代字号 (~)

c# - MySQL左填充和更新

javascript - 写入数组时 JavaScript 中的作用域问题

arrays - 快速将文本数据读入数组

c# - 使用Html.TextBoxFor时如何设置文本框的宽度

c# - C#中的简单乒乓球游戏

java - 共享空数组