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

iphone - 使用CGImage需要导入什么框架?

所以我有一个应用程序,它从图片中获取像素数据,然后通过每个像素的 RGB 值进行操作以改变亮度级别。

我有这些代码行将 a 转换UIImage为 a CGImage

我不断收到错误消息

“_CGImageGetDataProvder”,引用自:(blah blah blah)

“_CGDataProviderCopyData”,引用自:(blah blah blah)

谁能告诉我如何解决这些错误?我试过用谷歌搜索它们,但无济于事。我认为这与我不进口某些东西有关。有人对我有帮助吗?

0 投票
1 回答
995 浏览

cocoa - 使用 CGImageRef 使用图层属性创建 psd 图像

在 Mac OSX、Cocoa 中工作

我有一个具有分层属性的 psd 图像。我想将它裁剪到裁剪矩形并使用原始图像的设置保存这个裁剪的图像。

我将 CGImageRef 用于所有与图像相关的操作。

我附上了我用来裁剪图像的代码,如下所示。但它无法创建分层图像。

0 投票
1 回答
1481 浏览

cocoa - 开源读写多层.psd图片

我在 Mac OSX,可可。

我想读取和写入多层 .psd 图像。使用 Cocoa 本机 api,我可以将图像读取或写入为平面图像。(即单层)

那么是否有任何第三方库可用于执行操作?

这是我之前的查询。 使用 CGImageRef 使用图层属性创建 psd 图像

谢谢, 达纳

0 投票
1 回答
679 浏览

iphone - 将图像视图添加到图层

我确定这很简单,但我正在尝试将一组图像添加到图层中。这是我到目前为止所拥有的:

没有错误,但图像数组没有出现在屏幕上。我想也许这条线是probem..

我已将 imageview 添加到我的头文件中并将其添加到 XIB

如果可以的话请帮忙,

干杯,

亚当

0 投票
2 回答
6656 浏览

iphone - 如何在 iphone sdk 上将 NSData 转换为 CGDataProviderRef?

我在 CGContextDrawImage 调用中收到 EXEC_BAD_ACCESS 错误并试图追溯它。我有一个 PNG 图像并运行一个 UIImagePNGRepresentation o 它给了我 NSData 实例。

我需要将其转换为 CGImageRef 实例,因此我可以使用此 CGImageRef 运行 CGImageCreateWithPNGDataProvider 方法。

我尝试了两种方法:1)投射它。

CGImageRef ref = (CGDataProvider)nsdata;

2) 运行 CGDataProviderCreateWithCFData(nsdata);

第一种情况返回空图像,但命令不会失败。我尝试第二种情况的原因,即使我有 NSData 而不是 CFData 是因为我记得阅读它接受两者。不管是什么原因,它都因此而失败。

有没有办法可以使用我的 PNG NSData 创建未损坏的 CGImage?请帮忙。

谢谢

0 投票
2 回答
15835 浏览

iphone - 如何准确地从磁盘上的图像制作 CGImageRef

我四处张望无济于事。我正在一个线程中进行一些图像加载,并且由于 UIKit 不是线程安全的,我将不得不将图像存储为 CGImageRefs 但我不知道如何做到这一点。我以前没有玩过任何 Quartz 的东西,所以这让我很困惑。基本上我只需要将磁盘中的 JPG 加载到 CGImageRef 中。同样对于奖励积分,是否有将 GIF 加载到 CGImageRef 中?

0 投票
4 回答
1721 浏览

cocoa - 绘制CGImage的一部分

我有一个从 CGImage 中绘制图像的应用程序。

CImage 本身使用 CGImageSourceCreateImageAtIndex 加载以从 PNG 文件创建图像。

这构成了 sprite 引擎的一部分 - 在单个 PNG 文件上有多个 sprite 图像,因此每个 sprite 都有一个 CGRect 定义它在 CGImage 上的位置。

问题是,CGContextDraw 只需要一个目标矩形 - 并拉伸源 CGImage 以填充它。

因此,要绘制每个精灵图像,我们需要使用 CGImageCreateWithImageInRect() 从原始源创建多个 CGImage。

起初我认为这将是一个“便宜”的操作——每个 CGImage 似乎没有必要包含自己的图像位副本——但是,分析表明使用 CGImageCreateWithImageInRect() 是一项相当昂贵的操作。

是否有更优化的方法将 CGImage 的子部分绘制到 CGContext 上,所以我不需要经常使用 CGImageCreateWithImageInRect() ?


鉴于缺少源矩形,以及从 CGImage 上的矩形制作 CGImage 的容易性,我开始怀疑 CGImage 可能实现了写时复制语义,其中由 CGImage 制作的 CGImage 将引用子矩形与父级相同的物理位。分析似乎证明这是错误的:/

0 投票
1 回答
717 浏览

iphone - CGImageCreateWithImageInRect 导致失真

我正在使用 CGImageCreateWithImageInRect 做一个放大效果,它工作得很好,除非我靠近我的视图边缘。在这种情况下,剪裁会导致图像失真。现在我抓取一个 72x72 的视图块,对其应用一个圆形蒙版,然后绘制蒙版图像,并在顶部画一个圆圈。

当复制的块靠近视图边缘时,由于剪切,它会缩小到小于 72x72,然后当它在放大镜中绘制时,它会被拉伸。

例如,当触摸点靠近左边缘时,我想创建一个图像,其中左部分填充纯色,右半部分包含正在放大的视图的一部分。然后将蒙版应用于该图像并在顶部添加叠加层。

这就是我现在正在做的事情。imageRef 是被放大的图像,mask 是圆形遮罩,overlay 是一个圆圈,用来标记放大区域的边缘。

0 投票
1 回答
710 浏览

core-graphics - 将 RGBA 与两个 CGImageRefs 相乘

我想将 r、g、b 和两个 CGImage 的值相乘,以使用单个图像作为蒙版(在其 alpha 通道中)和色调(在 rgb 通道中)。我首先简单地尝试了:

但是,这只会着色,不会遮盖。因此,我将遮罩图像中的 alpha 提取到 CGImage 遮罩灰度图像中(使用 CGDataProvider)并将其用作上下文中的遮罩:

但是,它仍然看起来不正确。图像变;相乘的图像是否应该总是至少更暗?图像预览在:

http://dl.dropbox.com/u/6775/multiply/index.html

提前感谢您的启发:)

0 投票
1 回答
755 浏览

c++ - 如何将 std::string 的内容获取到 CFData 对象中?

我有一个返回对象的函数。std::string我正在使用 Cocoa/CoreGraphics,我需要一种方法将该字符串中的数据获取到一个CFData 对象中,以便我可以将输入到一个CGDataProviderCreateWithCFData 对象中以制作CGImage.

CreateCFData函数需要一个const UInt8*对象(UInt8作为 typedef 的unsigned char)。该字符串表示解码后的 Base64 字符串(图像数据)中的字节,因此它似乎包含许多空“字符”,因此将.c_str()输出明显转换为unsigned char*对象将不起作用。

我对 C++ 的经验较少,而且对 Cocoa/CoreGraphics 非常陌生,所以如果有更好的方法来完成我想做的事情,请告诉我。