c# - Raspberry Pi 和单声道帧缓冲区输入

标签 c# mono raspberry-pi framebuffer

我正在尝试使用单声道渲染内存中的位图。此图像应显示在 Adafruits 2.8"touch TFT (320*240) 上。该程序是使用 Visual Studio 2013 Community Edition 开发的。我想托管一个 ASP.NET Web Api 并显示 显示器上的一些数据。 ASP.NET 部分工作正常并且图像已呈现。我的想法是将图像写入帧缓冲区输入,但这样做我得到一个异常,说文件太大了。我只是在写没有 BMP header 的原始数据。有人设法做到这一点吗?也许图像的创建是 错误的。 似乎发生了一些事情,因为显示发生了变化,我可以看到可能来 self 的图像的白色区域。 我不想使用任何额外的库来保持简单。所以我的想法是直接用FBI。有谁知道这个问题和解决方案吗?

这是我的一些代码:

using (Bitmap bmp = new Bitmap(240, 320, PixelFormat.Format16bppRgb555))
{
    [...]
    Byte[] image = null;

    using(MemoryStream memoryStream = new MemoryStream())
    {
        bitmap.Save(memoryStream, ImageFormat.Bmp);

        Byte[] imageTemp = memoryStream.GetBuffer();
        //Remove BMP header
        image = new Byte[imageTemp.Length - 54];
        Buffer.BlockCopy(imageTemp, 54, image, 0, image.Length);
        //153600 byte
        using (FileStream fb1 = new FileStream("/dev/fb1", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
        {
            fb1.Write(image, 0, image.Length);
            fb1.Close();
        }
    }
}

最佳答案

看看http://computerstruggles.blogspot.de/2013/02/how-to-program-directfb-in-c-on.html - 这个想法是安装 directfb 库并通过 C# 和 PInvoke 使用它。该博客的作者使用 C 中的迷你包装器使其使用起来更加容易。顺便说一句,您为什么不喜欢安装额外的库并从其他人为您完成的工作中获利?

关于c# - Raspberry Pi 和单声道帧缓冲区输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28713227/

相关文章:

c# - 如何将公共(public)抽象类的子类化限制为同一程序集中的类型,从而允许将 protected 成员类型化为内部类型

c# - Unity3D - 检测 Windows 10 周年纪念日(版本号)

c# - mono 的 mdb 文件与 csc 的 pdb 文件

python - 通过树莓派同时播放多个声音文件,最好使用python

java - 尝试使用 JConsole 连接到 RaspberryPi jvm

java - 仅在启动时启动时绑定(bind)异常 [Raspbian]

c# - 如何使用带有 MVVM 的 WPF 应用程序中的 FolderBrowserDialog

c# - 注册表值更改错误(对象引用未设置为对象的实例)

c# - 如何以编程方式设置 UITableViewCell 中显示的文本

c# - 将额外的东西注入(inject)到属性的默认 get'ters 和 set'ters 中