我正在创建一个iOS绘图应用程序,允许用户在页面上放置箭头并定位/拉伸/旋转它们。当用户保存图像时,我必须使用png箭头在拖动它们的确切坐标处修改背景图像。
3个可拖动的部件将是带有CapInsets的UIImage,以保持拉伸时箭头看起来正常。画布UIImageView与实际图像具有相同的外观,确保没有可见的黑色空间。
我的问题是这样的。拉伸可拖动部件后,如何将UIImageView(较小的可拖动部件)的结果保存到磁盘/内存中,以便以后修改背景图像(背景UIImageView画布)。确保用于修改画布的图像看起来与表示它的UIImageView可拖动部件完全相同非常重要。这意味着它必须准确保留图像的显示方式,包括CapInsets。
我现在忽略可拖动部件的旋转,因为我怀疑这将是容易的部分。
答案 0 :(得分:0)
尝试使用此代码从所需视图中获取图层屏幕截图:
- (UIImage *)imageFromLayer:(CALayer *)layer {
UIGraphicsBeginImageContext([layer frame].size);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outputImage;
}