我知道关于如何在图像视图的一部分上覆盖文本框的资源已经足够了。但是,有什么方法可以在上传时将图像+叠加文本保存为新图像?
- 用户选择照片和图像视图填充图像
- 用户在图像视图顶部输入文本
- 用户点击“上传”按钮,图像+文本被渲染为一个新图像,在保存到后端数据库之前在其上合并文本。
这可能吗?如何?
我知道关于如何在图像视图的一部分上覆盖文本框的资源已经足够了。但是,有什么方法可以在上传时将图像+叠加文本保存为新图像?
这可能吗?如何?
您可以使用 Core Graphics/Quartz 2D 做到这一点。我自己对 Core Graphics 不太熟悉,但请查看此处的文档,该文档描述了使用图像加载图形上下文,然后您可以在修改后将其保存到文件中,或者只是从头开始绘制图像并将其保存出来:
链接 1:iOS 绘图/打印
链接 2:Quartz 2D 编程指南
从Quartz 2D Programming Guide的“Text”部分下绘制文本的快速示例:
void MyDrawText (CGContextRef myContext, CGRect contextRect) // 1
{
float w, h;
w = contextRect.size.width;
h = contextRect.size.height;
CGAffineTransform myTextTransform; // 2
CGContextSelectFont (myContext, // 3
"Helvetica-Bold",
h/10,
kCGEncodingMacRoman);
CGContextSetCharacterSpacing (myContext, 10); // 4
CGContextSetTextDrawingMode (myContext, kCGTextFillStroke); // 5
CGContextSetRGBFillColor (myContext, 0, 1, 0, .5); // 6
CGContextSetRGBStrokeColor (myContext, 0, 0, 1, 1); // 7
myTextTransform = CGAffineTransformMakeRotation (MyRadians (45)); // 8
CGContextSetTextMatrix (myContext, myTextTransform); // 9
CGContextShowTextAtPoint (myContext, 40, 0, "Quartz 2D", 9); // 10
}
以下是代码的作用: