问题标签 [cgbitmapcontextcreate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9090 浏览

iphone - UIView:如何进行无损绘图?

我原来的问题:

我正在创建一个简单的绘图应用程序,并且需要能够在我的drawRect. 在不完全替换现有内容的情况下绘制现有内容的正确方法是什么?

根据在这里和其他地方收到的答案,这就是交易。

  1. 您应该准备好在drawRect 调用时重新绘制整个矩形。

  2. 无法通过执行以下操作来防止内容被删除:

    [self setClearsContextBeforeDrawing: NO];

    这只是对图形引擎的一个提示,让它为您预先清除视图是没有意义的,因为无论如何您可能需要重新绘制整个区域。它可能会阻止您的视图被自动删除,但您不能依赖它

  3. 要在视图顶部绘制而不擦除,请在屏幕外位图上下文中进行绘图(系统永远不会清除该上下文。)然后在您的 中drawRect,从该屏幕外缓冲区复制到视图。

例子:

TODO:任何人都可以优化,drawRect以便只使用(通常很小的)修改后的矩形区域进行复制吗?

0 投票
8 回答
4447 浏览

iphone - iPhone - UIImage 泄漏,CGBitmapContextCreateImage 泄漏

好吧,我很难追踪这个内存泄漏。运行此脚本时,我没有看到任何内存泄漏,但我的 objectalloc 正在攀升。Instruments 指向 CGBitmapContextCreateImage > create_bitmap_data_provider > malloc,这占了我的 objectalloc 的 60%。

这段代码被一个 NSTimer 调用了几次。

下面是模糊功能。我相信 objectalloc 问题位于此处。也许我只需要一双新鲜的眼睛。如果有人能弄清楚这一点,那就太好了。抱歉,它有点长...我会尽量缩短它。

我能想到的唯一一件事就是阻止 objectalloc 是这个 UIImage *retUIImage = [UIImage imageWithCGImage:cgImage];...但是在它被返回后如何释放它?希望有人可以帮忙。

0 投票
1 回答
974 浏览

iphone - iPhone - UIImage 泄漏,ObjectAlloc 构建

好吧,我很难追踪这个内存泄漏。运行此脚本时,我没有看到任何内存泄漏,但我的 objectalloc 正在攀升。Instruments 指向 CGBitmapContextCreateImage > create_bitmap_data_provider > malloc,这占了我的 objectalloc 的 60%。

这段代码被一个 NSTimer 调用了几次。

退货后如何清除reUIImage?

...或者我怎样才能使 UIImage imageWithCGImage 不构建我的 ObjectAlloc?

0 投票
5 回答
2356 浏览

iphone - iPhone - CGBitmapContextCreateImage 泄漏,还有其他人有这个问题吗?

有没有其他人遇到过这个问题?我经常使用 NSTimer 调整图像大小。使用 Instruments 后,它没有显示任何内存泄漏,但我的 objectalloc 继续攀升。它直接指向 CGBitmapContextCreateImage。

有人知道解决方案吗?甚至可能的想法?

0 投票
2 回答
1964 浏览

iphone - iPhone - 多个 CGBitmapContextCreateImage 调用 - ObjectAlloc 攀爬

有没有其他人遇到过这个问题?ObjectAlloc 作为 CGBitmapContextCreateImage 的结果而攀升。苹果的软件没有完全释放objectalloc吗?

我正在使用 NSTimer 每秒 12 次调整图像大小。在调整图像大小的过程中,我还通过包含插值质量来添加像高斯模糊效果这样的 Photoshop。

使用 Instruments 后,它没有显示任何内存泄漏,但我的 objectalloc 继续攀升。它直接指向CGBitmapContextCreateImage
CGBitmapContextCreateImage > create_bitmap_data_provide > malloc

有人知道解决方案吗?甚至可能的想法?

NSTimer 中的调用

调整大小功能

0 投票
2 回答
11901 浏览

iphone - iPhone:更改 CGImage 的 CGImageAlphaInfo

我有一个具有不受支持的位图图形上下文像素格式的 PNG 图像。每当我尝试调整图像大小时,都会CGBitmapContextCreate()因不支持的格式而窒息

我收到以下错误(错误格式为便于阅读):

支持的像素格式列表肯定不支持这种组合。看来我需要重绘图像并将 alpha 通道信息移动到kCGImageAlphaPremultipliedFirst 或 kCGImageAlphaPremultipliedLast

我不知道该怎么做。

PNG文件没有什么异常,也没有损坏。它在所有其他情况下都可以正常工作。我偶然遇到了这个错误,但显然我的用户可能有类似格式的文件,所以我必须检查我的应用程序导入的图像并纠正这个问题。

0 投票
1 回答
2635 浏览

iphone - CBitmapContextCreate、CGContextDrawImage、CGBitmapContextCreateImage 出错

错误:CGBitmapContextCreate:无效数据字节/行:对于 8 个整数位/组件、3 个组件、kCGImageAlphaNoneSkipFirst,应至少为 400。

错误:CGContextDrawImage:无效的上下文

错误:CGBitmapContextCreateImage:无效的上下文

目前,我的应用程序可以在 OS 4.0 中完美运行,但我一直试图让它在 3.1.3 中正常工作,并且不断收到上述错误。

我对 iPhone 开发相当陌生,不确定问题是什么。我正在使用我在 stackoverflow 上的另一篇文章中找到的图像调整大小代码。

这是代码:

任何帮助,将不胜感激。如果您需要更多信息,我很乐意发布。

0 投票
2 回答
19069 浏览

ios4 - CGContext & CGBitmapContextCreateImage 错误,如何修复?

我已经在这几个小时了,甚至不知道如何调试这个错误。也许有一位 SO 专家知道发生了什么。

}

这些是我调用此方法后出现的错误

谁能告诉我发生了什么事?提前致谢。

0 投票
3 回答
1997 浏览

cocoa - 请帮助 CGBitmapContext 和 16 位图像

我很想知道我在这里做错了什么。我是 CGImageRefs 的新手,所以任何建议都会有所帮助。

我正在尝试创建一个位图图像,其像素值是来自另一个位图的像素的加权和,并且两个位图都是每个通道 16 位。出于某种原因,我可以毫不费力地让它与 8 位图像一起使用,但它在 16 位时却惨遭失败。我的猜测是我只是没有正确设置。我尝试使用 CGFloats、floats 和 UInt16s 作为数据类型,但没有任何效果。输入图像没有 Alpha 通道。我得到的输出图像看起来像彩色雪。

标题中的相关内容:

我使用以下方法为输入位图(使用 CGImageSourceCreateImageAtIndex(source, 0, NULL) 创建的 CGImageRef)创建上下文:

输出位图的上下文以相同的方式创建。我使用以下方法将 inBitmap 绘制到 inContext 中:

然后我像这样初始化 inBaseAddress 和 outBaseAddress:

然后我用 inBaseAddress 中的值填充 outBaseAddress:

作为一个简单的检查,我尝试过:

这有效,至少意味着位图数据的上下文和指针正在工作。

感谢您的任何意见。这非常令人沮丧,因为它适用于 8 位图像。

0 投票
1 回答
226 浏览

uiimage - 为什么 drawPatternInRect: on UIImage 仅适用于 Views 上下文

我正在使用 CGBitmapContextCreate 调用创建自己的上下文。上下文创建成功。我可以使用调用 CGContextDrawImage 在此上下文中成功绘制 UIImage 。但是,当我尝试使用 UIImage 的 drawPatternInRect: 调用时,它会给出错误“上下文为 nil”。

我确信上下文不是 nil 并且它是正确创建的,因为 CGContextDrawImage 在相同的上下文中工作正常。drawPatternInRect: 只有当上下文是 UIView 或者我在 UIView 的 drawRect 方法中创建上下文时调用才能正常工作。但是,我不能使用 UIView 的上下文,因为我需要在这个上下文之外生成 UIImage。

有谁知道这里的问题是什么或drawPatternInRect的任何其他替代简单方法?