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

时间:2013-01-04 02:36:27

标签: ios uiview nsstring uiimage png

我有一个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 个答案:

答案 0 :(得分:1)

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

因此,上述问题可以忽略不计。