获得UILabels图像

时间:2014-03-12 02:32:20

标签: ios objective-c

有没有办法获得与UILabel的当前内容相对应的图像,然后我可以使用和操作它就像是UIImage一样?例如,假设我在代码中使用modeStartMessageLabel UILabel来显示我有时会即时更改的消息。现在让我们想象一下我想要捕获modeStartMessageLabel当前的样子,然后在我使用的一些专门的图像处理中使用该图像。在那些算法中,我复制图像并将其位置变形为各种形状。

我认为能够将标签的内容视为与我的捆绑包中的myArt.png文件一样,这将是有趣和巧妙的。

UILabel  * modeStartMessageLabel;

UIImageView *myArt = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myArt.png"]];

3 个答案:

答案 0 :(得分:1)

-(UIImage *)getImageFromLabel:(UILabel *)label {
    UIImage *imageFromLabel;
    CGSize size = label.frame.size;
    UIGraphicsBeginImageContextWithOptions(size, NO, 2);
    [label.layer renderInContext:UIGraphicsGetCurrentContext()];
    imageFromLabel = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return imageFromLabel;
}

答案 1 :(得分:0)

UIImage image;
UIGraphicsBeginImageContext (label.bounds.size);
[label drawViewHierarchyInRect:label.bounds afterScreenUpdates:NO];
image = UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext ();

这仅适用于iOS 7,速度非常快。

答案 2 :(得分:0)

不确定这是否适用于UILabel,但我不明白为什么它不会。

UIGraphicsBeginImageContext(label.bounds.size);
[[label layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

iOS 2.0支持此代码。