1

我希望能够从一组数据中生成图像。生成图像后,我想将其保存到相册并在滚动视图中显示。如何告诉应用程序创建图像?创建图像后,如何在滚动视图中显示它?同时,如何将该图像保存到相册?

我的应用程序在此处不做太多详细说明:

它接收用户输入的一组数据(主要是整数数据),然后使用 Core Graphics 将其转换为图像(我可以通过为视图生成一个新类来生成图像并将其显示给视图控制器 [子类UIView] 视图控制器的一部分)。现在我希望能够保存该图像以供进一步使用(我希望能够保存无限数量的图像,因此 NSUserDefaults 不是我想要的)。PNG文件是理想的,但我知道必须进行转换才能做到这一点。

我想尝试的事情:

UIImage 的创作者很多,但不知道要用哪一个。我应该创建一个新类来生成图像吗?我应该在另一个视图控制器中生成图像并将其保存在那里并在我想要显示它的视图控制器中访问它吗?我是否应该一起跳过核心图形而只使用 OpenGL ES(我有 OpenGL 的经验,只是在 iPhone 上没有)?

4

1 回答 1

0

你没有提供太多关于你在做什么的细节,所以除了笼统的术语之外很难给出建议:

  1. 你是如何生成你的图像的?如果它是基于 UIImage 的,则保存图像很简单——使用UIImageWriteToSavedPhotosAlbum。该文档还说明了 PNG 和 JPEG 表示功能。
  2. 如果您还没有 UIImage(即,您只是渲染到图形上下文中),则可以使用不同的方法来处理您想要的内容。查看CGBitmapContextCreateImage上的 Core Graphics 文档和UIGraphicsBeginImageContextWithOptions上的 UIKit 文档。

更新:

关于文本,您是否在调用之前调用了绘制方法UIGraphicsGetImageFromCurrentImageContext

我通常在您的方法上使用 Core Graphics 变体,但逻辑相似:

CGContextRef context = CGBitmapContextCreate(...);
// ... do some other drawing...
NSString* foo = @"Foo";
CGRect bounds = CGRectMake(0,0,100,100);
[foo drawInRect:bounds withFont:[UIFont systemFontOfSize:10]];
CGImageRef image = CGBitmapContextCreateImage(context);
于 2013-03-27T17:13:54.967 回答