如何在图像上书写文字并通过邮件发送?

时间:2012-10-16 11:07:00

标签: iphone objective-c ios

我正在创建一个在电子邮件上发送照片的应用,我已创建了图库,现在我希望我的应用可以在该照片上写文字并通过电子邮件发送。有什么建议?教程是可以接受的。

2 个答案:

答案 0 :(得分:1)

最简单但很棘手,在UIViewUIImageView内添加UILabel,使用yourimagetext进行更新。现在,通过捕获屏幕截图here.获取UIImage并将其附加到您的电子邮箱中。

答案 1 :(得分:0)

您可以使用图像创建UIImageView,然后在图像视图上放置具有清晰背景的UILabel,最后使用Core Graphics制作UIImage。 像这样:

UIImage *bcg = [UIImage imageNamed:@"image.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:bcg];
imgView.frame = CGRectZero;//Some frame
[self addSubview:imgView];
[imgView release];

UILabel *text = [[UILabel alloc] initWithFrame:CGRectMake(0, imgView.frame.size.height - 20, imgView.frame.size.width, 20)];
text.backgroundColor = [UIColor clearColor];
text.text = @"Some text";
[imgView addSubview:text];

UIImage *resultImage = nil;
UIGraphicsBeginImageContext(CGSizeMake(self.bounds.size.width,
                                       self.bounds.size.height)); 

[self.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext(); 
CGSize imageSize = CGSizeMake(self.bounds.size.width,
                              self.bounds.size.height);
UIGraphicsBeginImageContext(imageSize);

[viewImage drawInRect:CGRectMake(0,
                                 0,
                                 imageSize.width,
                                 imageSize.height)
            blendMode:kCGBlendModeNormal alpha:1];

resultImage = UIGraphicsGetImageFromCurrentImageContext();

此方法比在上下文中绘制图像和文本更容易调试。