问题标签 [cgimageref]

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

ios - CGImageRef 消耗大量内存

我正在为我的一个应用程序屏幕创建模糊图像,为此我使用以下代码



形成上面的代码,我得到了正确的模糊图像,但问题出 CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];在这一行。

到这行内存使用显示是正常的,但是在这行内存使用增加后异常高,

听到的是执行前显示的内存使用截图。内存使用随着这个方法的执行而不断增加,这是之前

在此处输入图像描述

这在执行该行之后 CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];

在此处输入图像描述

这是常见的行为..?我搜索了答案,但我没有得到,所以任何人都面临同样的问题,请帮助我

一件事我“不使用ARC”

0 投票
1 回答
39 浏览

objective-c - 在这种情况下无法获取像素的颜色

我尝试使用这篇文章中描述的类别解决方案(如何获取 iphone 上图像上像素的 RGB 值)。它似乎不适用于我的场景。

在我的场景中,我绘制圆圈以响应点击手势:

到目前为止,一切都很好。这将使用预期的颜色绘制圆圈,self.mainImageView.image并在重复调用后,在新位置绘制更多副本。响应某些事件(可能是计时器 - 可能是点击),蚂蚁对象的位置被更新,想法是查看新位置的屏幕上的内容并根据该位置的颜色执行一些操作。另一种方法 moveAnt 包含以下代码:

红色、绿色和蓝色的值始终为零,并且 alpha 的值在每个会话中显然是随机的,但在会话期间保持不变。

那么这里发生了什么?似乎该colorAtPosition类别中的方法必须期望一种与CGImageRef上面实际创建的格式不同的格式。那正确吗?这让我感到惊讶,因为看起来该方法是专门为具有已知格式而编写的,这就是我决定尝试它的原因。

0 投票
0 回答
541 浏览

ios - iOS 在大 UIView 上绘制多个小图像的最佳方法

我有一个非常非常大UIViewCATiledLayer.

我需要在上面渲染很多小图像。

这些小图像存储在一张大图像 (1024x1024) 中。它们可能具有透明度。

目前,我CGImageCreateWithImageInRect在大图像上使用CGImageRef为我需要的每个小图像创建 s。

后来,在 内drawRect,我根据需要调用CGContextDrawImage(context, rect, smallImage);以显示这些小图像中的每一个。

然而,根据 Instruments 的 Time Profiler,在CGContextDrawImage(274ms) 处存在非常大的瓶颈,我希望尽我所能减少它(不使用 OpenGL)。

我的问题是:如何?是否有CGContextDrawImage不需要缩放的替代方案?是否使用CGImageCreateWithImageInRect正确的方法来解决它?

0 投票
2 回答
869 浏览

objective-c - 如何从 CGImageRef 获取 PNG base64 编码?

我有 CGImageRef 对象(var quartzImage)。如何将此对象转换为 web 格式的 PNG 数据:"data:image/png;base64,"+ base64 数据图像

我的代码:

0 投票
1 回答
289 浏览

ios - iOS:在方法调用中使用 CGBitmapContextCreate 没有得到正确的结果

几个小时以来,我一直在为此挠头。

我正在使用以下方法调整 2 张图像的大小。相继:

它工作正常,没问题 - 但只有一张图像。如果我再次调用此方法,例如:

其中图像大小由:image1.size和决定image2.size。我试过翻转方法的调用顺序,第一个总是正确的。

它们不是太大,400 x 300、300 x 360。我只想将一个调整为 200 x 200,另一个调整为 150 x 150。这些只是 png。

它有效,但是如果我再次调用此方法,则第二张图像是错误的。错误的是它像纸上的水渍一样弄乱了像素。有时它甚至变得无法辨认。

我在这里遗漏了一些非常明显的东西吗?我试过了free(bytes);,我认为这里不需要,但为了尝试,但它仍然没有带来任何东西。我是否没有正确释放/释放某些东西,以便第二次调用该方法时,旧字节数据仍然存在?我只是在这里猜测。我正在使用 ARC。

0 投票
1 回答
599 浏览

ios - ios,无法获得正确的 CGImageRef 像素颜色

我做了一个上下文,然后是一个渐变。之后,我将根据上下文进行绘制。然后我从上下文中收到一个渐变图像,它是正确的,我可以在调试器中看到它。但是,当我尝试获取特定值的像素颜色时,它是不正确的。我感谢任何帮助,谢谢。这是代码。

0 投票
1 回答
2609 浏览

cgimageref - 将 CGImageRef(不是 UIImage)绘制到图像上下文中

下面是在上下文中绘制 UIImage 的确切方法:

没问题。但是,假设我有一个以某种方式构建的 CGImageRef。

我想把它画到上下文中。

你是怎样做的?

要清楚,显然您可以将其转换为 UIImage

但这似乎非常低效。怎么做?

我确定我很困惑或缺少一些简单的东西,所以谢谢。

0 投票
2 回答
1564 浏览

ios - view.layer drawInContext:UIGraphicsGetCurrentContext() 不绘图

我正在尝试将 a 绘制UIView成 a UIImage。这是我正在使用的代码:

我已验证myView.bounds.size有效。myView在屏幕上正确显示。但是,img完全是黑色的(我尝试在两者中显示UIImageView并尝试将 JPEG 表示写入文件。)图像尺寸正确,颜色空间(在 JPEG 文件输出中)是 RGB,颜色配置文件是 sRGB 等。意味着我们不是在处理损坏的图像(从某种意义上说,图像/位图数据本身是有效的)。我已经在 6.0 模拟器、7.0 模拟器和 7.0.6 设备上测试过这个案例,都一样。该图层没有任何子图层,我尝试设置masksToBoundsNO未更改任何内容。

什么可能导致视图的图层不绘制?

0 投票
1 回答
145 浏览

objective-c - OpenCV IplImage 到 CGImageRef

我在 OS X 项目中使用 OpenCV for iOS,到目前为止一切正常。我希望从视频文件中读取帧,但我需要它们是 type CGImageRef,而不是IplImage像我阅读它们时那样。

我的问题很简单:如何从 a 转换IplImage为 a CGImageRef

0 投票
0 回答
749 浏览

objective-c - OSX 上的 CGImage 到 NSBitmapImageRep

我很确定这个话题已经在这里讨论过好几次了,但是我有一个非常奇怪的问题,与在 OSX(10.8 和 10.9)上将 CGImage 转换为 NSBitmapImageRep 相关。

CGImage 对象来自 AVAssetImageGenerator copyCGImageAtTime:actualTime:error: 方法。我目前找到了两种方法来获得我想要的东西:

这可以正常工作,但速度有点慢。当我只想处理数据时,我看不到锁定图形上下文的意义......

我还尝试了以下方法:

希望这也有效,但结果图像的蓝色通道丢失

那么,如何在不需要图形锁定且在此过程中不丢失信息的情况下实现这种转换呢?