【问题标题】:Xcode - Image editingXcode - 图像编辑
【发布时间】:2011-11-04 02:45:44
【问题描述】:

我正在 iPad 上开发图像编辑应用程序。 它就像一个功能,您可以将文本写入图像然后保存。

用户将能够从 iPad 的照片库中选择图像。 选择照片后,它将导航到另一个视图,其中显示 ImageView、TextField、“测试”按钮和“确认”按钮。

  • ImageView 将显示选定的照片。
  • TextField 允许用户输入一些文本。
  • 点击测试按钮时,输入的文本将显示在图像上。
  • 点击确认按钮时,图像(上面有文字)将被保存。

我知道如何编写允许用户从照片库中选择图像并导航到在 ImageView 上显示所选图像的另一个视图的部分。

所以我需要有关如何在图像上显示文本和保存图像(带有文本)的帮助。

【问题讨论】:

  • converting UIVIew as Image? 的可能重复项
  • 不完全是那个副本。我想要的功能更像是一种图像编辑功能。我只需要有关如何将图像或文本插入所选照片的​​想法。如果可能,还要为文本添加效果。例如,将其加粗或为文本添加阴影效果。
  • 例如,一些移动应用程序具有允许您从图库中选择照片的功能,并且它有一些默认的剪贴画(帽子、头发、小胡子等),您可以放置​​在选定的照片。完成后,您可以将其保存为图像。是的,这就是我想要的功能。

标签: iphone objective-c ios xcode ipad


【解决方案1】:

有几种方法。最简单的方法是使用此代码对超级视图进行快照。

CGRect rect = CGRectMake(<your values>);
UIGraphicsBeginImageContext(rect.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

这是How to convert UIView as UIImage? 的副本。

【讨论】:

  • 所以我只是将文本字段放在图像视图的顶部供用户输入文本? 是我的 imageview 的值吗?
  • 不,您需要图像视图和标签的超级视图。这必须在您要求渲染的图层的坐标系中。
【解决方案2】:

在您的 UIImageView 对象中添加一个标签(其中包含来自照片库的图像)。当您想要在图像上显示文本时,设置此标签的框架。 您可以通过以下方式添加它:

[yourUiimageView addSubview: yourLabel];

然后通过以下方式裁剪您的图像:

UIGraphicsBeginImageContext(yourUiimageView.frame.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[yourUiimageView.layer renderInContext:ctx];
UIImage *albumThumbImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = UIImagePNGRepresentation(albumThumbImage);

现在将此数据保存到文档目录。此图像将包含带有文本的图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多