Cra*_*Dev 7 textures opengl-es objective-c ios
在我的opengl项目中,我需要在纹理中转换UIImage; 这是怎么做的?你能帮助我吗?
tig*_*ero 11
我没有测试以下但我将分3步拆分转换:
提取图片信息:
UIImage* image = [UIImage imageNamed:@"imageToApplyAsATexture.png"];
CGImageRef imageRef = [image CGImage];
int width = CGImageGetWidth(imageRef);
int height = CGImageGetHeight(imageRef);
Run Code Online (Sandbox Code Playgroud)textureData使用以上属性分配a :
GLubyte* textureData = (GLubyte *)malloc(width * height * 4); // if 4 components per pixel (RGBA)
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(textureData, width, height,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGContextRelease(context);
Run Code Online (Sandbox Code Playgroud)设置你的纹理:
GLuint textureID;
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
Run Code Online (Sandbox Code Playgroud)编辑:
读这个啧啧 ; 一切都是从一个图像转换为纹理并在iOS环境中应用纹理来解释的.
| 归档时间: |
|
| 查看次数: |
7605 次 |
| 最近记录: |