问题标签 [cgbitmapcontextcreate]
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.
swift - 将 PDF 转换为 CGImage 将图像变为负片
我有以下代码可以将 PDF 页面转换为 CGImage:
这确实将我的 PDF 页面转换为灰度位图。唯一的问题:结果CGImage
的颜色是反转的(黑色变成白色,反之亦然)。我摆弄了参数,CGBitmapContextCreate
但没有运气。
PS我添加了这段代码来将负数反转为正数:
这可行,但我当然希望首先得到正确的图像。
编辑:我想我一定是在做一些愚蠢的事情。当我像上面那样渲染并反转整个图片时,它看起来像
左边是Finder预览,右边是我的渲染。正如我现在注意到的那样,这会反转图像的某些部分。我尝试使用@Tricertops 代码并得到(上面/下面的黑色块来自其他PDF的列表)
显然,这具有正确的灰度值,但是有一些黑色蒙版覆盖了图片。左侧的纯文本现在不可见,但图像正确显示。
ios - 来自 CGBitmapContextCreate 的 CGContextDrawLayerInRect 失败 iPhone 7 Plus
我有一个 Objective C 项目,它在某一时刻从您的照片库或相机中拍摄一张照片,然后将它们切成小方块(瓷砖),并最终从切碎的方块中创建新的 UIImage 对象。
该代码在我的旧 iPhone 5 和 iPad Mini 2 上完美运行。
然而,在我的 iPhone 7 Plus 上,它会产生空白输出(而不是我输入的部分内容)。iPad Mini 2 和 iPhone 7 Plus 都运行 iOS 10.3.3,并且都是 64 位设备。
完整的功能在这里:
这在创建 CGContextRef 时调用了一个外部部分,bmpContext -- newCGBitmapContextWithSize :tileSize:withData。该位的代码如下:
起初我认为是“ drawInRect ”调用不知何故不起作用,现在我确信情况并非如此。我认为它与CGBitmapContextCreate调用有关。
谢谢!
ios - 在 iOS 中导出超大图像
我正在开发一个应用程序,它在 UIScrollView 中使用 CATiledLayer 支持的视图,让用户在任意大的画布上工作。画布基本上包含用户可以着色、选择、移动等的大块图表。我覆盖draw(_ rect: CGRect)
以在视图上绘制。
所有这些都运行良好 - CATiledLayer 在用户处理图表时可以很好地降低内存消耗。滚动和缩放效果很好。
我现在需要做的是允许用户将他们的图表副本导出到相机胶卷,但我遇到了内存问题并且应用程序崩溃了。我尝试了多种方法来将视图捕获到图像中。该视图在 UIScrollView 中并不完全可见
这是我当前生成图像的方式:
由于图表可以是任意大小,这意味着它们可以变得非常大。我需要一种能够以某种方式导出像这样的大图像的方法。示例错误:
我看到的大多数帖子都涉及如何阅读大图像(如照片)并显示它。我无法找到任何有关如何进行反向操作并获取视图图像的信息。有没有一种方法可以将视图的较小图块生成到文件上,然后将其拼接在一起并让他们访问生成的文件?谢谢!
swift - Swift 版本获取错误的像素数据,但 Object-c 版本使用方法“CGBitmapContextCreate”从同一图像中获取正确的像素数据
我不敢相信自己的眼睛,它们基本上是相同的代码,只是将Object-c代码转换为swift代码,但是Object-c代码总是得到正确的答案,但是swift代码有时会得到正确的答案,有时会得到错误的。
斯威夫特演绎:
Objective-C 版本:
可在https://github.com/tuchangwei/Pixel
如果你得到相同的答案,请运行更多次。
objective-c - Swift 和 Objective-C 应用程序中不同的 UIImage RGB 数据输出
我正在研究图像处理框架并使用此代码读取 RGB 数据:
如果我创建新的 Swift 项目和新的 Objective-C 项目并使用相同的代码(使用 Objc 项目的桥头文件),我会得到不同的结果,例如:
它会在进一步处理中导致许多不同的结果。我尝试使用 Objective-C 代码并使用 CGBitmapContextCreate() 读取数据,但得到完全相同的结果。它在两个应用程序中显示相同的 ColorSpace,我尝试手动将其设置为 DeviceRGB 和 sRGB,但没有任何运气。
我必须将 Objc 输出与与 Swift 应用程序具有完全相同结果的 Android 应用程序进行匹配。
更新。我尝试过的第二种解决方案是为 Objective-C 编写另一个代码,它返回与 Swift 不匹配的完全相同的结果: