【发布时间】:2017-09-18 21:26:06
【问题描述】:
我使用 OpenGL 作为 iOS 绘图应用程序的一部分。当用户完成绘制后,使用 SOIL 将纹理保存为 jpg。图像在视图中显示正确,保存时输出方向正确(反转图像后),但图像缩放到比我预期的更小的尺寸(基于设备..高分辨率设备产生更小的图像)。
我正在遵循的过程是:
unsigned char *pixels = (unsigned char*)malloc( 4* imgwidth* imgheight);
glBindTexture(GL_TEXTURE_2D, 0);
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, imgwidth, imgheight);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glPixelStorei (GL_UNPACK_SKIP_ROWS, 1);
glPixelStorei (GL_UNPACK_SKIP_PIXELS, 1);
glReadPixels(0, 0, imgwidth, imgheight, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid *) pixels);
invertPixels(pixels);
int result;
result = SOIL_save_image_quality(imagepath, SOIL_SAVE_TYPE_JPG, d, imgheight, 4, pixel_data, 99);
delete [] pixel;
我已经彻底分析了反演算法,并相信它可以完成工作,没有它,图像大小相同但上下颠倒。这可能是什么原因造成的?我需要重新调整我的纹理吗?
【问题讨论】: