0

我正在尝试研究如何使用 CoreGraphics 从 TexturePage 中进行绘制。

给定一个包含多个 64x64 打包纹理的纹理页面 (CGImageRef),我如何将该页面中的子区域渲染到设备上下文中。

CGContextDrawImage 似乎只需要一个目标矩形。我注意到 CGImageCreateWithImageInRect,但是这会创建一个新图像。我不想要一个新图像,我只想从原始图像中绘制。

我确信这是可能的,但是我是 iPhone 开发的新手。

非常感谢任何帮助。

谢谢

4

2 回答 2

2

有什么问题CGImageCreateWithImageInRect

CGImageRef subImage = CGImageCreateWithImageInRect(image, srcRect);
if (subImage) {
    CGContextDrawImage(context, destRect, subImage);
    CFRelease(subImage);
}
于 2009-03-10T20:23:04.787 回答
1

编辑:等一下。使用 CGImageCreateWithImageInRect。这就是它的用途。

这是我最初写的想法;我会留下它们以防它们有用。

  • 看看您是否可以从另一个图像创建某种子图像,以便它借用原始图像的缓冲区(很像一些子字符串实现)。然后您可以使用子图像进行绘制。
  • 可能 Core Graphics 更多地用于合成而不是图像处理,因此您可能必须在应用程序包中使用单独的图像文件。如果 SDK 文档没有特别推荐你正在做的事情,那么我建议你走那条路,因为这似乎是最简单和自然的方式。
  • 您可以改用 OpenGLES,在这种情况下,您可以指定多边形顶点的纹理坐标以仅选择大纹理的那一部分。
于 2009-03-10T15:55:51.637 回答