我见过很多示例,其中一些示例从输入 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
我有类似的问题,但我真的想修改输入图像。我想它会工作得更快,因为我不会每次都绘制原始图像。但我找不到它的任何样本。我怎样才能得到原始图像的图像上下文,它已经被绘制出来了?
最佳答案
UIImage
由于多种原因(大多数与性能和内存有关)是不可变的。如果你想弄乱它,你必须复制一份。
如果您想要一个可变图像,只需将其绘制到上下文中并继续使用该上下文即可。您可以使用 CGBitmapContextCreate 创建自己的上下文。
就是说,不要在这里过分猜测系统。 UIImage
和 Core Graphics 有很多优化,你看到这么多复制图像的例子是有原因的。不要“假设它会工作得更快”。你真的必须在你的程序中分析它。
关于ios - 修改 UIGraphicsContext 中的原始 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329188/