【问题标题】:Modify original UIImage in UIGraphicsContext修改 UIGraphicsContext 中的原始 UIImage
【发布时间】:2015-07-09 22:14:49
【问题描述】:

我见过很多例子,他们通过输入 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

我有类似的问题,但我真的想修改输入图像。我想它会工作得更快,因为我不会每次都绘制原始图像。但我找不到它的任何样本。如何获取已绘制的原始图像的图像上下文?

【问题讨论】:

    标签: ios uiimage uikit core-graphics


    【解决方案1】:

    UIImage 是不可变的,原因有很多(其中大部分与性能和内存有关)。如果你想弄乱它,你必须复制它。

    如果您想要一个可变图像,只需将其绘制到上下文中并继续使用该上下文即可。您可以使用 CGBitmapContextCreate 创建自己的上下文。

    也就是说,不要在这里过多地猜测系统。 UIImage 和 Core Graphics 有很多优化,你看到这么多复制图像的例子是有原因的。不要“认为它会工作得更快”。你真的必须在你的程序中描述它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      相关资源
      最近更新 更多