OpenTKOpenGL位图数据格式问题

问题描述

我正在尝试使用opentk将位图数据打印到屏幕上。

GL.TexImage2D(TextureTarget.Texture2D,PixelInternalFormat.Rgba,data.Width,data.Height,OpenTK.Graphics.OpenGL.PixelFormat.Bgra,PixelType.UnsignedByte,data.Scan0);

我得到了一个错误。我的猜测是我写的格式错误。使用Format8bppIndexed,我可以在图片框中正确查看。我收到的图像是黑白的。

传入数据;

BitmapSingleImage = new Bitmap(rsSplitWidth,rsSplitHeight,rsSplitWidth,System.Drawing.Imaging.PixelFormat.Format8bppIndexed,(IntPtr)pt);
    
videosGUI.LoadTexture(BitmapSingleImage);

接收数据的地方;

public int LoadTexture(Bitmap file)
{
    Bitmap bitmap = file;
    GL.Hint(HintTarget.PerspectiveCorrectionHint,HintMode.Nicest);

    GL.GenTextures(1,out texture);
    GL.BindTexture(TextureTarget.Texture2D,texture);

    BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0,bitmap.Width,bitmap.Height),ImageLockMode.ReadOnly,System.Drawing.Imaging.PixelFormat.Format8bppIndexed);

    GL.TexImage2D(TextureTarget.Texture2D,data.Scan0);
    bitmap.UnlockBits(data);


    GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureMinFilter,(int)TextureMinFilter.Linear);
    GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureMagFilter,(int)TextureMagFilter.Linear);
    GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureWrapS,(int)TextureWrapMode.Repeat);
    GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureWrapT,(int)TextureWrapMode.Repeat);
    return texture;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...