我已经看到了很多例子,其中一些例子使用输入UIImage进行修改获得了新的UIImage。看上去:
- (UIImage *)imageByDrawingCircleOnImage:(UIImage *)image
{
// begin a graphics context of sufficient size
UIGraphicsBeginImageContext(image.size);
// draw original image into the context
[image drawAtPoint:CGPointZero];
// get the context for CoreGraphics
CGContextRef ctx = UIGraphicsGetCurrentContext();
// draw there我也有类似的问题,但我真的想修改输入图像。我想它会工作得更快,因为我不会每次都画原始图像。但我找不到任何样本。如何获得原始图像的图像上下文,它已经绘制在哪里?
发布于 2015-07-09 22:30:30
UIImage是不可变的,原因有很多(其中大多数是关于性能和内存的)。如果你想搞砸它,你必须复印一份。
如果您想要一个可变的图像,只需将其绘制到上下文中并继续使用该上下文即可。您可以使用CGBitmapContextCreate创建自己的上下文。
尽管如此,不要在这里过多地猜测系统。UIImage和Core在它们中有很多优化,所以您看到这么多复制图像的示例是有原因的。不要“假设它会工作得更快”。你真的必须在你的程序中分析它。
https://stackoverflow.com/questions/31329188
复制相似问题