问题标签 [cgbitmapcontext]

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 回答
247 浏览

xamarin.ios - 用于绘图的 CGBitmapContext 选项

CGBitmapContext 或 Quartz 2D 有选项吗?我想用它在单点触控的 UIImage 上绘图。

谢谢亚历克斯。

0 投票
1 回答
523 浏览

ios - 替换 CGBitmapContext 中的特定颜色

如何替换CGBitmapContext已经绘制的特定颜色(RGB 值)?

有什么简单的方法吗?

提前致谢。

0 投票
1 回答
719 浏览

c# - MonoTouch 中的 CGBitmapContext 抛出无效句柄异常

我是 MonoTouch 的新手,我最近一直在将代码从标准 C# 转换为符合 MonoTouch 的代码,以便可以在 iPhone 应用程序中使用它。我已经设法转换了代码,但是我遇到了这个用于返回位图上下文的方法的问题:

这是堆栈跟踪:

错误发生在以下行:

我对 MonoTouch 很陌生,所以如果它非常明显,请尝试忍受我,但有人可以解释发生了什么吗?

0 投票
1 回答
677 浏览

ios - CGBitmapContextCreate 内存释放责任

这就是我创建UIImage. piOutData我用calloc分配。现在当我CGImageRelease最后打电话时,它会自动释放piOutData还是我需要通过免费手动完成。

0 投票
0 回答
242 浏览

xamarin.ios - 从样本缓冲区获取图像

我正在尝试在相机打开时在 ipad 上捕获屏幕截图。我的代码看起来与 Xamarin MonoTouch 示例中的 AVCaptureFrames 完全一样:

在此处输入图像描述

但是,出于某种原因,我不断收到无效的处理程序异常。我看过与我类似的其他问题,例如:

MonoTouch中的CGBitmapContext抛出无效句柄异常“无效句柄”创建CGBitmapContext

但他们的解决方案并没有解决我的类似问题。我的问题不是由于发送 null 或因为我的内存太大。我没有发送空值,我通过 xcode 分配工具检查了我的内存使用情况,我的内存使用情况没有爆炸;它最多只增加 400KB。

0 投票
0 回答
722 浏览

c# - CGBitmapContext 中的像素操作取决于视图的父视图?

在使用 CGBitmapContext 操作像素时,我遇到了一些非常奇怪的事情。基本上我正在改变 PNG 的 Alpha 值。我有一个例子,我可以成功地将 PNG 像素的 Alpha 值归零,除非我的 ImageView 的超级视图是带有图像的 ImageView……这是为什么?我不确定这是错误还是上下文中的某些内容设置不正确。

下面是一个例子。它成功地将 alpha 值归零,但是当你给超级视图的 UIImageView 一个图像时,它不能正常工作。应该具有零 Alpha 的像素是稍微可见的。但是,当您从 superview 的 UIImageView 中删除图像时,Alpha 值被正确归零,您可以完美地看到它背后的白色背景。我尝试过使用几种不同的 CGBlendModes,但似乎并没有这样做。

这是演示此奇怪事件的示例项目的保管箱链接: https ://www.dropbox.com/s/e93hzxl5ru5wnss/TestAlpha.zip

这是代码复制/粘贴:

更新 我找到了一种解决方法(尽管它的性能对于我正在做的事情来说是非常不可接受的)解决方法只是从我上面的代码中获取结果图像,将其转换为 NSData,然后将 NSData 转换回 UIIMage .. . 神奇地,图像看起来正确!这种解决方法;但是,对于我正在做的事情是不可接受的,因为用我的图像执行此操作实际上需要 2 秒,这对我的应用程序来说太长了。几百毫秒会很有趣, 但是 2 秒对我来说太长了。如果这是一个错误,希望它得到解决!

这是解决方法(性能不佳)代码。只需将此代码添加到上面代码的末尾(或下载我的保管箱项目并将此代码添加到它的末尾并运行):

这是之前和之后的照片。之前没有解决方法,之后包括解决方法。

在此处输入图像描述 请注意,灰色并没有完全出现。它被一些浅棕色覆盖,好像 alpha 值没有完全归零。

在此处输入图像描述 请注意解决方法,您可以完美清晰地看到灰色,根本没有浅棕色。我唯一做的就是将图像转换为 NSData,然后再次转换回 UIImage!很奇怪...

0 投票
1 回答
1943 浏览

calayer - 如何使用 renderInContext: 与 CGBitmapContextCreate 和 Retina?

我手动创建了一个 CGBitmapContext:

并为其绘制一个图层:

但是,在 Retina 上,我的图层仅渲染为原始大小的一半。

在 上设置contentScaleFactor属性UIView不会改变任何东西。

这样做的正确方法是什么?

0 投票
3 回答
7693 浏览

ios - 在 iOS 中处理大图像

我想允许用户选择一张照片,而不限制大小,然后对其进行编辑。

我的想法是创建一个与屏幕大小相同的大照片的缩略图进行编辑,然后在编辑完成后,使用大照片进行与缩略图相同的编辑。

当我使用UIGraphicsBeginImageContext创建缩略图时,它会导致内存问题。

我知道由于硬件限制,很难直接编辑整个大图像,所以我想知道是否有一种方法可以将大图像降采样到小于 2048*2048 而不会出现内存问题?

我发现有一个BitmapFactory类有一个inSampleSize可以在 Android 平台上对照片进行下采样的选项。如何在 iOS 上做到这一点?

0 投票
1 回答
1440 浏览

objective-c - Create CGImage From CGBitmapContext and Add to UIImageView

I am trying to create a snapshot of a UICollectionViewCell by creating a CGBitMapContext. I am not entirely clear on how to do this or how to use the associated classes, but after a bit of research, I have written the following method which is called from inside my UICollectionViewCell subclass:

The result is that the image does not appear. Upon debugging, I can determine that I have a valid (non nil) context, CGImage, UIImage and UIImageView, but nothing appears onscreen. Can someone tell me what I am missing?

0 投票
1 回答
309 浏览

avplayer - 将电影中的帧绘制到 CGBitmapContext

我有一个应用程序需要使用任意 CGAffineTransform 将视频/电影中的帧渲染到 CGBitmapContext 中。我希望它有一个不错的帧速率,至少像 20fps。

我尝试过使用 AVURLAsset 和 [AVAssetImageGenerator copyCGImageAtTime:],并且正如该方法的文档明确指出的那样,它非常慢,有时会降低到 5fps。

有什么更好的方法来做到这一点?我想我可以使用 AVPlayerLayer 设置 AVPlayer,然后将 [CGLayer renderInContext:] 与我的转换一起使用。这行得通吗?或者当 AVPlayerLayer 注意到它没有显示在屏幕上时,它可能不会运行?

还有什么方法可以推荐吗?