问题标签 [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.
xamarin.ios - 用于绘图的 CGBitmapContext 选项
CGBitmapContext 或 Quartz 2D 有选项吗?我想用它在单点触控的 UIImage 上绘图。
谢谢亚历克斯。
ios - 替换 CGBitmapContext 中的特定颜色
如何替换CGBitmapContext
已经绘制的特定颜色(RGB 值)?
有什么简单的方法吗?
提前致谢。
c# - MonoTouch 中的 CGBitmapContext 抛出无效句柄异常
我是 MonoTouch 的新手,我最近一直在将代码从标准 C# 转换为符合 MonoTouch 的代码,以便可以在 iPhone 应用程序中使用它。我已经设法转换了代码,但是我遇到了这个用于返回位图上下文的方法的问题:
这是堆栈跟踪:
错误发生在以下行:
我对 MonoTouch 很陌生,所以如果它非常明显,请尝试忍受我,但有人可以解释发生了什么吗?
ios - CGBitmapContextCreate 内存释放责任
这就是我创建UIImage
. piOutData
我用calloc分配。现在当我CGImageRelease
最后打电话时,它会自动释放piOutData
还是我需要通过免费手动完成。
xamarin.ios - 从样本缓冲区获取图像
我正在尝试在相机打开时在 ipad 上捕获屏幕截图。我的代码看起来与 Xamarin MonoTouch 示例中的 AVCaptureFrames 完全一样:
但是,出于某种原因,我不断收到无效的处理程序异常。我看过与我类似的其他问题,例如:
MonoTouch中的CGBitmapContext抛出无效句柄异常和“无效句柄”创建CGBitmapContext
但他们的解决方案并没有解决我的类似问题。我的问题不是由于发送 null 或因为我的内存太大。我没有发送空值,我通过 xcode 分配工具检查了我的内存使用情况,我的内存使用情况没有爆炸;它最多只增加 400KB。
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!很奇怪...
calayer - 如何使用 renderInContext: 与 CGBitmapContextCreate 和 Retina?
我手动创建了一个 CGBitmapContext:
并为其绘制一个图层:
但是,在 Retina 上,我的图层仅渲染为原始大小的一半。
在 上设置contentScaleFactor
属性UIView
不会改变任何东西。
这样做的正确方法是什么?
ios - 在 iOS 中处理大图像
我想允许用户选择一张照片,而不限制大小,然后对其进行编辑。
我的想法是创建一个与屏幕大小相同的大照片的缩略图进行编辑,然后在编辑完成后,使用大照片进行与缩略图相同的编辑。
当我使用UIGraphicsBeginImageContext
创建缩略图时,它会导致内存问题。
我知道由于硬件限制,很难直接编辑整个大图像,所以我想知道是否有一种方法可以将大图像降采样到小于 2048*2048 而不会出现内存问题?
我发现有一个BitmapFactory
类有一个inSampleSize
可以在 Android 平台上对照片进行下采样的选项。如何在 iOS 上做到这一点?
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?
avplayer - 将电影中的帧绘制到 CGBitmapContext
我有一个应用程序需要使用任意 CGAffineTransform 将视频/电影中的帧渲染到 CGBitmapContext 中。我希望它有一个不错的帧速率,至少像 20fps。
我尝试过使用 AVURLAsset 和 [AVAssetImageGenerator copyCGImageAtTime:],并且正如该方法的文档明确指出的那样,它非常慢,有时会降低到 5fps。
有什么更好的方法来做到这一点?我想我可以使用 AVPlayerLayer 设置 AVPlayer,然后将 [CGLayer renderInContext:] 与我的转换一起使用。这行得通吗?或者当 AVPlayerLayer 注意到它没有显示在屏幕上时,它可能不会运行?
还有什么方法可以推荐吗?