1

首先让我注意到我完全不知道我在用objective-c和mac开发做什么(尽管我对c很好)。我使用 Quartz-2d 绑定 python 在 leopard 上制作了一个非常简单的图形实用程序:

http://developer.apple.com/graphicsimaging/pythonandquartz.html

基本上输入一个文本文件并编写一个漂亮的 png 文件(它是一个命令行实用程序)。在我将实用程序移至我们的雪豹服务器并发现 CoreGraphics 和雪豹上的 32 位 python 存在各种问题之前,我很高兴。这些问题有些是可以解决的,有些则不是。所以,我试图将这个简单的实用程序脚本移植到objective-c(真的是CI假设)并遇到一些问题。有没有人知道是否有一个很好的例子,几乎与python和quartz中给出的例子完全一样,但都是本机代码?

我的主要问题是将图形上下文写入文件

myBitmapContext = MyCreateBitmapContext (400, 300);

CGContextSetRGBFillColor (myBitmapContext, 1, 0, 0, 1);
CGContextFillRect (myBitmapContext, CGRectMake (0, 0, 200, 100 ));
CGContextSetRGBFillColor (myBitmapContext, 0, 0, 1, .5);
CGContextFillRect (myBitmapContext, CGRectMake (0, 0, 100, 200 ));
CGImageRef myImage = CGBitmapContextCreateImage (myBitmapContext);// 5

CGContextDrawImage(myBitmapContext, myBoundingBox, myImage);// 6
char *bitmapData = CGBitmapContextGetData(myBitmapContext); // 7

// I'd like to write to a file here!

CGContextRelease (myBitmapContext);// 8
if (bitmapData) free(bitmapData); // 9
CGImageRelease(myImage);

MyCreateBitmapContext 是apple's guide on quartz 2d中的一个简单函数。

TL;DR 有人有上面链接中给出的 python 演示的 C 端口吗?

4

1 回答 1

1
CGImageRef myImage = CGBitmapContextCreateImage (myBitmapContext);// 5

CGContextDrawImage(myBitmapContext, myBoundingBox, myImage);// 6

什么?为什么要将上下文的内容捕获为图像,然后将该图像绘制回您从中获取它的上下文中?

// I'd like to write to a file here!

执行第 5 步,然后将该图像提供给CGImageDestination

您可能会发现Core Graphics Reference Collection很方便。大多数框架都有一个类似的文档。

于 2010-08-06T04:38:06.723 回答