为PNG复制到一个更大的空白/代码生成的纹理最佳方式吗? (OpenGL ES的1.1 / iPhone)

StackOverflow https://stackoverflow.com/questions/521483

  •  22-08-2019
  •  | 
  •  

我有一个小320x480 PNG,我想纹理贴图/操纵的iPhone,但这些尺寸显然不是2.我已经测试了我的纹理贴图处理算法在512x512的PNG这是一个黑色背景功率分辨率320x480图像叠加在其上,以原点为中心(左下角(0,0)),其中区域分辨率320x480的方向正确/中心/缩放的iPhone屏幕上。

我想现在要做的,就是在那里,我可以拿小320x480源图像,并将它们应用到空白/黑色背景中的代码生成512×512的纹理使两者将作为一个纹理相结合,这样我可以应用的地步进展顶点纹理坐标我在512 * 512的测试中使用。这将最终被用于摄像机捕获和相机胶卷源图像等。

任何想法? (必须是对OpenGL ES 1.1不使用GL util的工具包,等)。

谢谢, ARI

有帮助吗?

解决方案

一种方法我发现工作是简单地两个图像绘制到当前上下文中,然后提取所得到的组合图像。是否有更朝向的OpenGL面向另一种方式可以是比较有效?

// CGImageRef for background image
// CGImageRef for foreground image

// CGSize for current context

// Define CGContextRef for current context

// UIGraphicsBeginImageContext using CGSize

// Get value for current context with UIGraphicsGetCurrentContext()

// Define 2 rectangles, one for the background and one for the foreground images

// CGContextDrawImage(currentContext, backgroundRect, backgroundImage);
// CGContextDrawImage(currentContext, foregroundRect, foregroundImage);

// UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();

// spriteImage = finalImage.CGImage();

// UIGraphicsEndImageContext();

此时就可以继续使用spriteImage作为纹理图像源,这将是一个512×512空白PNG的具有小320x480 PNG例如组合。

我将替换用代码生成的图像的512×512空白PNG但这确实工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top