gpt4 book ai didi

ios - 转换纹理中的 UIImage

转载 作者:可可西里 更新时间:2023-11-01 03:28:33 25 4
gpt4 key购买 nike

在我的 opengl 项目中,我需要转换纹理中的 UIImage;有什么办法呢?你能帮帮我吗?

最佳答案

我还没有测试以下内容,但我将分 3 个步骤分解转换:

  1. 为您的图像提取信息:

    UIImage* image = [UIImage imageNamed:@"imageToApplyAsATexture.png"];
    CGImageRef imageRef = [image CGImage];
    int width = CGImageGetWidth(imageRef);
    int height = CGImageGetHeight(imageRef);
  2. 分配一个具有上述属性的textureData:

    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);
  3. 设置你的纹理:

    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);

编辑:

阅读this tut ;从一张图像到纹理的转换以及在 iOS 环境中应用纹理,一切都得到了解释。

关于ios - 转换纹理中的 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com