我正在制作一款应用程序,用户可以拍摄照片,然后在图像上放置覆盖层,用户可以保存该图像或将其上传到Facebook或其他网站。
我已成功实现了拍照功能,并使用UIImageView
制作了一个覆盖层,该覆盖层覆盖在照片的顶部。
我不确定如何将带有覆盖层的图像作为一个文件导出到照片库或Facebook等网站。
我正在制作一款应用程序,用户可以拍摄照片,然后在图像上放置覆盖层,用户可以保存该图像或将其上传到Facebook或其他网站。
我已成功实现了拍照功能,并使用UIImageView
制作了一个覆盖层,该覆盖层覆盖在照片的顶部。
我不确定如何将带有覆盖层的图像作为一个文件导出到照片库或Facebook等网站。
UIImageView
的基础层可以将自己渲染到CoreGraphics位图上下文中(当然,这也包括所有的子层),然后提供给你一个新的UIImage
。UIImage *finalImage;
// Get the layer
CALayer *layer = [myImageView layer];
// Create a bitmap context and make it the current context
UIGraphicsBeginImageContext(layer.bounds.size);
// Get a reference to the context
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Ask the layer to draw itself
[layer drawInContext:ctx];
// Then ask the context itself for the image
finalImage = UIGraphicsGetImageFromCurrentImageContext();
// Finally, pop the context off the stack
UIGraphicsEndImageContext();
CGBitmapContext
并获取CGImageRef
,从而可以再次生成一个UIImage
。该方法在Quartz 2D编程指南中有所描述,具体在“创建位图图形上下文”一节("Creating a Bitmap Graphics Context")。