【发布时间】:2017-04-26 02:30:59
【问题描述】:
我正在尝试将渲染的输出保存到文件中。我已经在使用 FreeImage 作为依赖项,所以我想继续使用它。我正在使用glReadPixels 从缓冲区中读取 RGB 值。这些值作为 GLubytes 输入缓冲区,所以我想我需要这样读取它们。但是,当我运行以下代码 sn-p 时,FreeImage_ConvertFromRawBits 调用 seg 错误,我不明白为什么。我咨询了the docs,看来我做的一切都是正确的。有没有其他人遇到过这个问题?
GLubyte pixels[3*_winWidth*_winHeight];
glReadPixels(0, 0, _winWidth, _winHeight, GL_RGB, GL_UNSIGNED_BYTE, pixels);
FIBITMAP *bitmap = FreeImage_ConvertFromRawBits(pixels, _winWidth,
_winHeight, 3 *_winWidth, 24, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK,
FI_RGBA_BLUE_MASK, false);
【问题讨论】:
-
@genpfault:我之前也遇到过同样的问题,虽然你是对的,但绝对应该切换回去
-
是的,here ya go,请随意使用它来构建。
-
我试试看,谢谢!
-
警告,您对
FreeImage_ConvertFromRawBits的调用似乎是错误的:FreeImage_ConvertFromRawBits(pixels, _winWidth,_winWidth,... -
@purplepsycho:哎呀,打错了,谢谢!它之所以有效,是因为我有 1024x1024 图像
标签: c opengl rendering freeimage