c#中,从OpenGL缓存利用glReadPixels读取出RGB像素,生成BMP出错,求解决
// 获得客户区矩形
[DllImport("user32.dll")]
public static extern int GetClientRect(IntPtr hWnd, out RECT lpRect);
// 矩形结构
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
IntPtr hwnd = this.Handle;
RECT rc;
GetClientRect(hwnd,out rc);
int uWidth=rc.right-rc.left,uHeight=rc.bottom-rc.top;
//分配BMP图片所需空间
byte [] pImage = new byte[uWidth * uHeight * 3];
//uint [] pImage= new uint[uWidth * uHeight * 3];
// 读取屏幕像素
CsGL.OpenGL.GL.glPixelStorei(GL.GL_PACK_ALIGNMENT, 1);
CsGL.OpenGL.GL.glReadPixels(0, 0, uWidth, uHeight, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, pImage);
CsGL.OpenGL.GL.glPixelStorei(GL.GL_PACK_ALIGNMENT, 1);
下面怎么写?我是这样写的,很笨拙的办法
Bitmap bit = new Bitmap(uWidth, uHeight);
int i = 0;
for(int k=0;k<uWidth;k++)
{
for(int j=0;j<uHeight;j++)
{
//因为得到的是BGR像素,所以这里反过来
bit.SetPixel(k, j, Color.FromArgb(pImage[i + 2], pImage[i + 1], pImage[i]));
i++;
}
}
bit.Save("C:\\222.bmp", ImageFormat.Bmp);
出来的图是一片黑点点,求高手解决
相关推荐
一个从帧缓存中读取像素的例子
这个程序演示了如何在OpenGL中从帧缓存读取像素
GL库函数 GL库函数 GL库函数 GL库函数 GL库函数
GL库函数 GL库函数 GL库函数 GL库函数 GL库函数
Unity实时画面投射系统:帧捕获+轻量H.264+跨平台低延迟方案
Unity实时画面投射是一种将运行时渲染画面作为可编程数据流进行采集、编码与分发的技术范式。其核心在于绕过传统Screen Capture等高开销API,直接从渲染管线底层(如BackBuffer、CommandBuffer)截取帧数据,结合自研轻量H.264编码器实现低延迟、低带宽、跨平台的实时传输。该技术显著降低CPU占用与端到端输入延迟(<15ms),支持Windows/macOS/Android/iOS/WebGL全平台直连,无需依赖RDP或VNC等操作系统级服务。典型应用于工业数字孪生远程监控、P
Delphi 13.2控件之FMXLinux11-20240611.zip
Delphi 13.2控件之FMXLinux11-20240611.zip
语音情感识别系统实战教程
这是一套基于 Librosa + PyTorch CNN 的语音情感识别系统完整实战教程,输入一段 wav 人声录音,程序输出 8 种情感(中性/平静/快乐/悲伤/愤怒/恐惧/厌恶/惊讶)各自的概率和主判定结果,全程纯 CPU 可跑。交付物含可运行 Python 源码、RAVDESS 完整数据集(1440 条)、训练好的权重、9 章文档(三件套)、PPT 和 6 张真跑截图。 内容围绕 main.py 的命令:train 扫描音频提取 MFCC 特征并缓存,二次训练免重复提取,--dryrun 用极小样本几分钟走通全链路;infer 在测试集上输出准确率、分类报告与混淆矩阵图,支持单文件预测和批量识别;gui 打开 Tkinter 可视化工作台,左侧选音频看结果与 Top-3 候选,右侧实时显示波形与 8 类情感概率条形图,批量结果一键导出 CSV。 亮点在于无显卡要求:8GB 内存普通电脑即可,MFCC 特征提取加训练合计十来分钟,模型权重仅 1-2MB;依赖锁定 Python 3.10 + torch 2.1.0+cpu + librosa 0.10.1 + numpy 1.26.4 + scikit-learn 1.3.2;第 7 章整理 15 个以上高频报错;第 8 章给出换情感表、换特征、接入长音频的路径。


