如何将 UIImage 视图和其中的文本保存到磁盘

Posted

技术标签:

【中文标题】如何将 UIImage 视图和其中的文本保存到磁盘【英文标题】:How to save UIImage view and text within it to disk 【发布时间】:2013-01-04 02:36:27 【问题描述】:

我有一个 ios 应用程序,它使用 UIImage 子类视图和 UIBezierPath 在屏幕上绘制形状以绘制形状的线条。

这里是绘制文本的代码:

// This is inside a loop
const unsigned int row       = i; 
const unsigned int column    = j;

NSString* rowColumnId = [[NSString alloc] initWithFormat:@"%d, %d", column, row ];
CGPoint textCoord = shapeCoord[0];
textCoord.x += 5;
textCoord.y += 5;

[rowColumnId drawAtPoint:textCoord withFont:[UIFont fontWithName:@"Helvetica" size:9.0]];

在屏幕上,一切看起来都很好;形状和文本在 iOS 模拟器和我的 iOS 设备中都可见

我需要将视图保存为 PNG 图像,所以我使用以下代码来执行此操作:

// set up the rendering context
CGSize  boardViewSize = [self bounds].size;
UIGraphicsBeginImageContext(boardViewSize);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];

// draw the view
UIImage*    viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

// convert to PNG
NSData*     pngData  = UIImagePNGRepresentation(viewImage);
UIImage*    pngImage = [UIImage imageWithData:pngData];
return pngImage;

当我保存 PNG 时,我看到的只是形状。

还需要什么代码来保存 NSString 绘制的文本?

【问题讨论】:

【参考方案1】:

好吧,我发现问题是黑色文本没有出现在透明的 PNG 上,尽管它在那里。

所以,上面列出的问题可以忽略。

【讨论】:

以上是关于如何将 UIImage 视图和其中的文本保存到磁盘的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift - 在 UIImage 上画线以保存到文件

NSData到UIImage

如何在 UIScrollView 内使用 Autolayout 将 UIImage 视图缩放为正方形

如何在视图控制器上保存和调用 UIImage?

将 UIImage 保存到文件而不是 NSUserDefaults

如何保存uitextfield以使文本保持从视图控制器到视图控制器