问题标签 [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 投票
1 回答
747 浏览

ios - CGImageRef 的 NSArray 的问题(但不在模拟器上!)

我正在尝试将一些 CGImageRefs 放入 NSArray。它可以在模拟器上正常工作,但不能在设备上工作 - 它在我尝试使用 EXC_BAD_ACCESS 代码 = 1 错误形成数组时崩溃。我也尝试了其他的东西,比如从一个可变数组开始,但它也不起作用。在控制台输入 bt 的结果是

所以基本上我有很多图像,字母,我有很多层代表单词中的位置,每个层都应该循环遍历它们。例如,图层 1 显示字母 C,然后是字母 F,然后是字母 P 等,而图层 2 显示其他序列。

我以为我会加载每个字母一次...

...并将 CGImageRefs 放在 NSArray 属性中,转换为 id:

然后我再做

但更重要的是,我必须能够将它们(可能每次)放在另一个数组中:

然后将该数组用作 keyFrameAnimation 的值:

所有这些都在模拟器中正常工作,每次。

正如我所说,我尝试了一些变体,唯一可行的方法是当我使用 arrayWithObject 形成一个只有一个 letter-imageref 的可变数组时。即使那样,它也只是有时有效,而且它在我的程序中进一步崩溃。

我似乎在某处读到没有保留 CGImageRefs,因此它们可能在我使用它们之前就被释放了。自从我在引入 ARC 后开始编码以来,我对发布知之甚少,而且由于它一直在模拟器上工作,我认为这不适用于我的情况。

另外,在这个回复中:

如何创建一个可变的 CGImageRefs 数组?

一个在 Cocoa Frameworks 上工作的人说它应该可以工作,尽管他没有给出任何细节,所以它可能是暗示的。

任何帮助和建议将不胜感激。

编辑已解决 似乎问题确实是当我尝试将它们添加到数组时图像引用不存在,这是因为它们已经被释放了。显然他们需要使用 CGImageRetain 来保留。它现在可以工作了,我只需要确保它们在之后被释放。

0 投票
2 回答
522 浏览

iphone - 显示屏幕截图生成的 UIImage 不在 UIImageView 中显示(仅适用于设备)

我正在尝试将 OpenGL 缓冲区(视图中当前显示的内容)保存到设备的照片库中。下面的代码片段在模拟器上运行良好。但对于实际设备,它正在崩溃。我相信我创建从屏幕捕获的 UIImage 的方式可能存在问题。

  • 此操作通过 IBAction 事件句柄方法启动。
  • 我用来保存图像的函数是 UIImageWriteToSavedPhotosAlbum(我最近将其更改为 ALAssetsLibrary 的 writeImageToSavedPhotosAlbum)。
  • 我已确保我的应用程序有权访问照片库。
  • 我还确保我的 CGImageRed 是全局定义的(在文件顶部定义)并且我的 UIImage 是一个(非原子,保留)属性。

有人可以帮我解决这个问题吗?我想要一个从 glReadPixels 数据生成的有效 UIImage 引用。

下面是相关的代码片段(调用保存到照片库):

* 更新 * 我想我已经设法缩小我的问题范围。我开始进行反复试验,在注释掉代码行后我运行应用程序(在设备上),以缩小范围。看起来我可能对TakeImageBufferSnapshot函数有问题,该函数获取屏幕缓冲区(使用 glReadPixels)并创建一个 CGImageRef。现在,当我尝试从中创建 UIImage 时(使用 [UIImage imageWithCGImage:] 方法,这似乎就是应用程序崩溃的原因。如果我将这一行注释掉,似乎没有问题(除了事实上我没有 UIImage 参考)。

我基本上需要一个有效的 UIImage 参考,以便我可以将其保存到照片库(使用测试图像似乎可以正常工作)。

0 投票
1 回答
729 浏览

iphone - How to flip a CGImageRef over y-axis

I'm trying to animate a sprite using only CoreAnimation. It's working so far except I can't figure out how to flip the sprite sheet.

Right now, I have a walking animation, but I want the sprite to face the direction it's walking (because it looks kind of silly walking backwards).

I guess I could add the reversed images on the sprite sheet, but I would rather avoid that because it could make it really big when I decide to add more.

Right now, my sprite is extending CALayer and I've set its contents to the CGImageRef which is the sprite sheet:

To flip it I tried:

..and that's not working.

I found other solutions which involve animating, but I don't want to animate the flip. I just want it to happen instantly.

Is there a simple way to do this?

If there's a way to flip the whole CALayer, I'd like to know that too. =]

Thanks!

0 投票
1 回答
526 浏览

objective-c - 如何以编程方式提取图像的子图像

我尝试参与UIImage使用 Objective-C,但找不到任何有关如何执行此操作的信息。我想帮助弄清楚如何做到这一点以及所涉及的步骤。

0 投票
1 回答
192 浏览

objective-c - 线程、块、CGImageRef 和范围的问题

我有一个程序,我在其中设置了一个在后台线程上运行的完成块。在块内,我设置了一个 CGImageRef,然后在主线程上设置我的图层内容。问题是,有时应用程序在主线程部分崩溃。

这是完成块,在下面的代码中,fullImage 和 cfFullImage 都在我的 .h 中声明

我的完成块的最后一行是调用 displayFullSize。该功能如下。

您是否看到或知道 setContents 可能失败的任何原因?

谢谢乔

0 投票
1 回答
953 浏览

ios - 来自 GRKPhoto 的 UIImage 使用 ALAsset

我使用grabKit是为了允许用户将他们的Instagram、Facebook 和本地图片导入我的应用程序。当照片是本地的时,问题就来了。在这种情况下,我使用了一种在用户选择照片时有效的方法。

为此,我找到的标准代码如下:

通过进行一些调试,我发现当我尝试CGImageRefALAsset以下行中获取 ergo时,应用程序崩溃了CGImageRef imgRef = [[asset defaultRepresentation] fullResolutionImage];

如果它可以帮助解决我的问题,我在控制台中收到的消息是:

感谢您的时间和兴趣!

0 投票
0 回答
2162 浏览

ios - Conversion of CIImage to CGImageRef which could be used to create a GLK texture

I have a CIImage which is the result/output image of a CIFilter. Now I want to create a texture of that image using GLKTextureLoader. I am using the following function which requires a CGImageRef to achieve that.

So the question is, what is the best way to convert a CIImage to CGImageRef which could be used by GLKTextureLoader?

I tried the following method but it failed:

fullscreenCI is the outputImage of a CIFilter.

The above method gives the following error:

error in creating GLK texture : Error Domain=GLKTextureLoaderErrorDomain Code=12 "The operation couldn’t be completed. (GLKTextureLoaderErrorDomain error 12.)" UserInfo=0x1438a880 {GLKTextureLoaderErrorKey=Image decoding failed}

I figured out it could be because of some colorspace issue and tried the following method:

Now the above method works fine! But I want to know if there is any better way to convert the CIImage to CGImageRef without having to use UIImagePNGRepresentation.

0 投票
0 回答
721 浏览

ios - 使用 ios sdk 将 png 文件转换为 gif 文件?

我正在创建从库中获取图像并转换为 gif 文件的 iphone 应用程序。我已使用以下链接成功创建

http://gist.github.com/mayoff/4969104

使用此代码,我可以创建 gif 文件。但图像质量正在发生变化。一些图像被拉伸。请任何人帮助我解决这个问题。

提前致谢。

0 投票
1 回答
245 浏览

ios - 什么时候发布 CGImageRef 合适?

XCode分析我的代码时,它发现了潜在的内存泄漏。我使用ARC,但我了解到 ARC 不处理 C 类型。由于我使用它CGImageRef是为了创建UIImage它并分配给UIImageView.image属性,所以什么时候发布合适CGImageRef?我可以在用它创建一个新UIImage的之后立即发布它吗?如果我释放CGImageRef,那么它是否会使我的UIImage实例也无效?

0 投票
1 回答
455 浏览

ios - CFRelease 导致 iPad 应用程序崩溃

我正在尝试合并四个图像以使其成为一个 uiimage。但是当我要做 CFRelease 时,它​​就崩溃了。如果我不这样做,那么它会导致内存泄漏和崩溃。如何解决?

请参阅下面的代码。

我收到以下错误。我该如何解决这个问题?我的项目在 ARC 中。

* -[UIImage _cfTypeID]:消息发送到释放的实例 0x1e88dce0