问题标签 [cgimage]

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 投票
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 回答
1889 浏览

uiimage - CGImageRelease() 是否释放 UIImage 的内存?

我有以下代码:

我知道CGImage是UIImage类的只读属性。是否行

释放originalImage的内存?

我正在追踪我的程序中的一个错误,如果我稍后尝试访问originalImage ,这条线似乎是一个热门候选者。

谢谢,斯特凡

0 投票
7 回答
10417 浏览

iphone - takepicture() 与 UIGetScreenImage()

我正在尝试为QRCodeReader我们的研究小组正在为 iPhone 开发的项目构建一个项目。经过大量研究,我发现了一个名为QuickMark. 该程序会自动扫描二维码。它似乎做的是UIImagePicker从相机加载和读取数据。我怀疑它正在使用UIGetScreenImage并从相机中截取屏幕截图并对其进行解码。

现在我尝试使用takepicture()3.1 iPhone API 中的新方法,但这似乎无法完成上述操作,即每隔一秒左右拍照,静默。现在我听说这UIGetScreenImage可能是不合法的,如果他们使用你的应用程序,Apple 会转身拒绝访问。所以,我的问题是:

a) 是否Quickmark(或任何其他允许的应用程序)使用UIGetScreenImage(),如果是,是否合法,并且,

b)方法是否有可能takepicture()做同样的事情?

0 投票
1 回答
1170 浏览

iphone - 由于缓存导致的 UIImage 内存问题

我在谷歌上搜索了与 UIImage 相关的内存问题,发现很多线程都在谈论这个问题,但没有真正的帮助或解决方案。

我知道当我们使用-imageNamed:对象时会被缓存,所以最好使用initWithData:. 当我们使用drawRect:andUIGraphicsGetImageFromCurrentImageContext()时,图像会被缓存吗?

同样在以下代码中:

尽管文档中没有关于此的参考,但是否进行了缓存?我们如何释放被缓存消耗的内存?

0 投票
2 回答
14049 浏览

ios - 如何使用 RGB 数据创建 CGImage?

谁能给我一个清楚的例子来说明如何使用

我有一个 CGFloat dataBuffer [width * height * 3];

它包含图像的所有 RGB 数据。本质上,它从像素 R (0,0), G (0,0), B(0,0), R(0,1)... 到 R(width, height), G(width,height) , B(宽,高)

我知道图像的大小,宽度 x 高度。如何使用我拥有和创建的信息和 CGI​​mage?

请帮忙,谢谢

我发布了另一个包含上述问题的问题。nschmidt 回答正确,这里是链接

在 Objective-C++ Cocoa 中将 RGB 数据转换为位图

0 投票
1 回答
1055 浏览

iphone - CGImageRef 和绘图层

我有这个代码:

后来我以这种方式将 CGImageRef 加载到 UIImage 中:

我想在该图像上画一个圆圈。关键是圆圈移动,因此必须删除并重绘。我想实现这一点的最好方法是使用图层,所以我的问题是:如何在该代码中添加一个图层并在其上画一个圆圈?以后如何重置图层并重新绘制该圆圈?

谢谢!

0 投票
4 回答
2236 浏览

iphone - 线程内的 UIImage 未被释放/覆盖

这似乎是从 iPhone 扫描图像的经典方法。我有一个从主线程调度的线程去扫描代码。它基本上每次都会创建一个新的 UIImage 然后将其删除。

问题是 [pool release] 导致 ERROR_BAD_EXC (旧经典)和程序炸弹。有人告诉我没有必要调用 [uiimage release],因为我没有明确分配 UIImage,但情况似乎并非如此。如果我去掉那条线,内存使用量就会飙升,程序会因为内存不足而退出。看来我不能按照我想要的方式完成这项工作。

有没有办法“就地”创建 UIImage ?即,是否有一个作为 UIImage 一次又一次写入的缓冲区?我怀疑这会起作用吗?

更新!

尝试在主线程上执行 UIKit 相关调用如下:

然而,当人们希望抓住 UIImage 的“大小”时,EXC_BAD_ACCESS 抬起了丑陋的脑袋,这并不令人高兴

0 投票
4 回答
11351 浏览

iphone - CGImage/UIImage 在 UI 线程上延迟加载会导致卡顿

我的程序显示一个水平滚动表面,从左到右平铺 UIImageViews。代码在 UI 线程上运行,以确保新可见的 UIImageViews 具有分配给它们的新加载的 UIImage。加载发生在后台线程上。

一切工作几乎都很好,除了每个图像变得可见时都会出现口吃。起初我以为我的后台工作人员在 UI 线程中锁定了一些东西。我花了很多时间研究它,最终意识到 UIImage 在它第一次变得可见时在 UI 线程上做了一些额外的惰性处理。这让我很困惑,因为我的工作线程有用于解压缩 JPEG 数据的显式代码。

无论如何,我凭直觉写了一些代码来渲染到后台线程上的临时图形上下文中 - 果然,口吃消失了。UIImage 现在正在我的工作线程上预加载。到现在为止还挺好。

问题是我的新“强制延迟加载图像”方法不可靠。它会导致间歇性 EXC_BAD_ACCESS。我不知道 UIImage 在幕后实际上在做什么。也许它正在解压缩 JPEG 数据。无论如何,方法是:

EXC_BAD_ACCESS 发生在 CGContextDrawImage 行上。问题 1:我可以在 UI 线程以外的线程上执行此操作吗?问题 2: UIImage 实际上是“预加载”的是什么?问题3:解决这个问题的官方方法是什么?

感谢您阅读所有内容,任何建议将不胜感激!

0 投票
3 回答
1631 浏览

iphone - 旋转的 CGImage/CGlayer 的抗锯齿似乎是锯齿状的,UIImageView 的不是

我需要用旋转的灰度图像掩盖“纹理”图像。

我发现,我必须用CGImagesCGlayers 来做(如果有更简单的方法只使用UIImageViews,请告诉我)。

我的问题很简单:

任何旋转变换的 CG 东西的抗锯齿都是安静的 锯齿状......

...但是旋转转换的 UIImageView 的抗锯齿有点完美。我怎样才能产生漂亮的抗锯齿旋转?

我已经上传了一个涉及实际 iPhone 模拟器屏幕截图的“证明”,看看我在说什么: http: //gotoandplay.freeblog.hu/files/Proof.png

我尝试使用CGImagesCGLayersUIImageViews “捕获”与renderInContext,我尝试将CGContextSetInterpolationQuality设置为高,并尝试设置CGContextSetAllowsAntialiasing - CGContextSetShouldAntialias,但每种情况都返回相同的锯齿状结果。

我计划明年学习使用 OpenGL,但这个开发应该只使用 CoreGraphics 发布。请让我知道如何获得完美渲染的旋转图像,我不能接受这是不可能的。

0 投票
1 回答
391 浏览

iphone - 在 iPhone OS 3.0 上发布 CGImage 时 malloc 错误的来源?

在针对 iPhone OS 3.0 SDK 进行开发时,我发现了一个错误。基本上,如果我从位图图像上下文创建 CGImage,我在释放它时会收到以下错误:

以下是相关代码:

上面的例子是独立的,很明显没有违反保留/释放规则。我已经在 3.0、3.1 和 3.1.2 下的 iPhone 模拟器上测试了这段代码。该问题仅在3.0下出现;它似乎已在 3.1 及更高版本中修复。我还没有确认设备上的错误。