- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于 CGContextDrawImage 可能非常昂贵,因此我在检查像素数据时尽量减少提供给它的数据量。如果我有两个图像和它们交集的 CGRect,我能否让 CGContextDrawImage 仅独立绘制每个图像的交集(导致两个 CGContextRefs 包含其中一个图像的交集)?
这里有一些代码不起作用,但应该接近我需要的一张图片...
CGImageRef imageRef = [image CGImage];
NSUInteger width = rectIntersect.size.width;
NSUInteger height = rectIntersect.size.height;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
// rectIntersect down here contains the intersection of the two images...
CGContextDrawImage(context, rectIntersect, imageRef);
最佳答案
好吧,除非你真的想要一个 CGBitmapContext
,否则你不需要绘制它们。使用 CGImageCreateWithImageInRect()
创建子图像。这不一定要求框架复制任何图像数据。它可能只引用原始图像数据。因此,它可以非常有效。
如果您确实需要将图像绘制到上下文中,您当然可以只绘制子图像。
关于ios - CGContextDrawImage 仅包含两个图像的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373960/
我已经尝试混合两个 UIImage 大约 2 天了,但我收到了一些 BAD_ACCESS 错误。首先,我有两个具有相同方向的图像,基本上我使用 CoreGraphics 进行混合。 一个奇怪的细节,每
我使用时序分析工具确定 95% 的时间都花在调用函数 CGContextDrawImage 上。 在我的应用程序中,有很多重复的图像被重复地从 Sprite map 中截取并绘制到屏幕上。我想知道是否
我正在使用 PhotoScrollerNetwork project为我的项目中的 View 提供单个高分辨率图像并自动平铺它,以便正确管理内存。它使用此代码块将完整的高分辨率图像绘制到内存中,以便可
我正在尝试使用 AVCaptureSession 获取图像。我遵循了本教程 http://www.benjaminloulier.com/posts/2-ios4-and-direct-access-
我正在尝试从 CGImage 创建 CVPixelBufferRef 所以这里是方法: - (CVPixelBufferRef) pixelBufferFromCGImage: (CGImageRef
由于 CGContextDrawImage 可能非常昂贵,因此我在检查像素数据时尽量减少提供给它的数据量。如果我有两个图像和它们交集的 CGRect,我能否让 CGContextDrawImage 仅
我正在尝试比较两个图像(实际上是在较大的图像中找到较小的“子图像”),并且我正在使用下面提供的方法加载图像。 下面的代码现在包含一个测试 for 循环,它总结了所有单独的字节值。我发现这个总和和因此字
我正在尝试制作一个可以使用 CGContextDrawImage(…) 绘制大型(比如 2048 x 1537)图像的一部分的对象。它工作得很好,除了它非常模糊。我正在使用覆盖 drawLayer:i
我有一个自定义 View ,它使用以下方法绘制 CGImage: - (void) drawImage { CGContextRef context = (CGContextRef)[[NSG
我正在使用 Cocoa 和 Xcode4 在 Mac OS X 10.6 上开发 Mac 应用程序,从相机缓冲区获取图像后,我需要获取图像的原始数据。这是代码: - (void)captureOutp
对 GCContextDrawImage 的调用最终成为我的 Mac OS X 应用程序的瓶颈,尤其是在视网膜屏幕上。我设法通过 Avoiding colorspace transformations
在运行了以下代码块之后,我得到了 CGContextDrawImage 的无效上下文 0x0。此代码位于 UIViewController 中的用户定义方法中。我本质上是通过使用 AVFoundati
为什么图像旋转,通过调用CGContextDrawImage。感谢您的帮助。 // Initialization code UIImage *img = [UIImage imageNamed:@"l
有时 CGContextDrawImage 会导致执行以下代码时出现“访问错误”我们无法找到原因。有没有人在使用“CGContextDrawImage”时遇到过同样的错误? let bytes
我使用这段代码缩放和旋转用照相机拍摄的图像。当我使用它时,我可以看到一个巨大的内存峰值。大约 20 MB。当我使用仪器时,我可以看到这一行: CGContextDrawImage(ctxt, orig
我正在尝试编写一个 iPhone 应用程序,它采用 PNG tilesets 并在屏幕上显示它们的片段,并且我试图让它以 20fps 的速度刷新整个屏幕。目前我在模拟器上管理大约 3 或 4fps,在
我目前在 OSX 上使用 CoreGraphics 进行了大量工作。 我对我的代码运行了 Time Profiler,发现最大的问题在于 CGContextDrawImage。它是每秒被调用多次的循环
如何在中心旋转由 CGContextDrawImage() 绘制的图像? 在drawRect: CGContextSaveGState(c); rect = CGRectOffset(rect, -r
我想轻松地将 UIImage 混合到另一个背景图像之上,因此为 UIImage 编写了一个类别方法,改编自 blend two uiimages based on alpha/transparency
我试图制作一个可调整大小的图像,但无法弄清楚这一点。 当我使用 UIImage *bgImage = [[UIImage imageNamed:@"logout-bg"] resizableImage
我是一名优秀的程序员,十分优秀!