所以我正在使用 CGBitmapContext 使软件 blitter 适应 iOS。我将数据写入位图,然后使用 CoreGraphics 函数在 CGBitmapContext 上写入文本。软件 blitter 使用左上原点,而 CoreGraphics 函数使用左下原点。因此,当我使用 (0, 0) 处的 blitter 绘制图像时,它会出现在左上角。当我在 (0, 0) 处使用 CG 绘制文本时,它出现在左下角,并且未反转。是的,我已经阅读了有关反转坐标的所有其他问题,并且我正在对生成的 CG 图像执行此操作以在视图中正确显示它。也许一个代码示例会有所帮助......
// This image is at the top left corner using the custom blitter.
screen->write(image, ark::Point(0, 0));
// This text is at the bottom left corner RIGHT SIDE UP
// cg context is a CGBitmapContext
CGContextShowTextAtPoint(
cgcontext,
0, 0,
str.c_str(),
str.length());
// Send final image to video output.
CGImageRef screenImage = CGBitmapContextCreateImage(cgcontext);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0, 480);
// Here I flip the whole image, so if I flip the text above, then
// it ends up upside down.
CGContextScaleCTM(context, 1, -1);
CGContextDrawImage(context,
CGRectMake(0, 0, 320, 480), screenImage);
CGContextRestoreGState(context);
CGImageRelease(screenImage);
如何混合坐标系?如何使用 ULC 原点将文本正面朝上绘制?