问题标签 [ciimage]
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.
uiscrollview - 当一个 ImageView 在 ScrollView 中时,使用 Core Image 合成 2 个 UIImageViews
我有UIScrollView
一个UIImageView
里面有一个。用户可以在 scrollView 内平移和缩放图像。
我在主视图中也有一个UIImageView
(在滚动视图上方),用户可以在屏幕上移动该图像。
我正在使用 CISourceOverCompositing 将它们结合起来:
...但是当我将其设置为 a 时,图像的位置和比例已经丢失,CIImage
并且前景图像始终位于左下角。
所以我尝试使用imageByApplyingTransform
来移动前景图像的位置(最终我也必须应用缩放变换),但是我从 ImageView 中获取位置,但是坐标需要在背景图像的本机分辨率中本身......但是背景图像正在移动(我想这意味着我必须以ContentOffset
某种方式考虑),并且背景图像具有一定的比例,而前景图像具有一定的比例......
似乎很奇怪,需要重新生成关于每个图像的不同比例、旋转和位置变量的所有转换......
这是我正在尝试做的基本思想(左侧位于主视图坐标中,而右侧位于本机图像坐标中)。
任何帮助都感激不尽!
谢谢!
ios - 从 CIImage 获取 CGImage
我有一个从 CIImage 加载的 UIImage:
tempImage = [UIImage imageWithCIImage:ciImage];
问题是我需要裁剪tempImage
到一个特定CGRect
的,我知道如何做到这一点的唯一方法是使用CGImage
. 问题是在 iOS 6.0 文档中我发现了这个:
CG图像
If the UIImage object was initialized using a CIImage object, the value of the property is NULL.
A. 如何从 CIImage 转换为 CGImage?我正在使用这段代码,但我有内存泄漏(并且无法理解在哪里):
ios - 从 CIImage 创建 UIImage 时颜色反转(iOS 6.0)
我一直在尝试大量不同的选项和技巧来让 UIImage 从 CIImage 正确构建。但是,每次我创建 CIImage 时,它的颜色似乎都被反转了。
我最近的代码是:
这会产生以下图像:
但是,构建这样的图像:
...产生以下图像:
我尝试了很多不同的方法来构建 CIImage。
- https://stackoverflow.com/a/7788510/1218605
- http://www.raywenderlich.com/5689/beginning-core-image-in-ios-5
- [CIImage imageWithData:UIImagePNGRepresentation(img)];
- 几乎所有其他 CIImage 构造函数...
这是因为在 iOS 中 CIImage 的像素格式是 ARGB 吗?(这似乎是目前 iOS6 上唯一可能的格式)
如果是这样,我怎样才能交换像素格式让这个 CIImage 看起来正常?
我在 git 上创建了一个项目 repo,显示了我尝试过的所有主要不同方式(不包括每种方式的变体)。有6种方法,前5种失败:
https://github.com/C4Code/CIImageTest
最后一种方法有效,但它真的很脏:
我正在从 UIImage 绘制到我自己的图形上下文中,并且因为它有效,所以我相信 CIImage 的本机实现可能存在错误。也就是说,从 UIImage 创建 CIImage 不起作用...同样,我唯一能想到的是 CIImage 在 ARGB 空间中,而 UIImage 不是...但是,我不知道如何解决这个问题?
这是一个错误吗?
objective-c - 撤消 CIImageAccumulator
我有这样的绘画应用程序女巫作品:
- 在 mouseDown/mouseDragged 事件中,我使用 CIRadialGradient 在事件位置绘制一个点
- 取 CIRadialGradient outputImage 并在 CISourceOverCompositing 过滤器中使用它作为 inputImage(开始时的 inputBackground 为空 CIImage)
- 将CISourceOverCompositing outputImage设置为brushAccumulator图像(后面将brushAccumulator图像作为CISourceOverCompositing filter中的inputBackgroundImage)
- 设置brushAccumulator 图像为CIBlendWithMask inputMaskImage 设置CIBlendWithMask outputImage 为mainImageAccumulator 图像绘制mainImageAccumulator 到屏幕
我想实现撤消方法。首先,我认为我可以使用brushAccumulator.image(CIImage)作为撤消对象(将其添加到mutableArray,然后在调用撤消方法时将brushAccumulator图像设置为mutableArray对象之一)但我发现:CIImage不是包含像素的图像,它只是构建它的一系列指令的结果,例如 CIFilter 的输出。因此,如果您复制 CIImage,您只需复制那些指令,修改后会修改输出。
所以我想我可以从brushAccumulator的图像中制作NSBitmapImageRep并将其存储到NSMutableArray。但是我在更新brushAccumulator 时遇到了问题。我将新的 CIImage 设置为由 NSMutableArray 中的 NSBitmapImageRep 之一制成的新 CIImage 作为brushAccumulator 图像,但brushAccumulator 图像不会改变。
当我的绘画应用程序基于 CIImageAccumulator(类似于 CIMicroPaint 示例代码)时,您能为我提供什么来实现撤消/重做效果?
c# - 将 CIImage 转换为 UIImage 后,AsJPEG().Save 不起作用
我正在使用 CIImage 的 ImageByCroppingToRect 函数来裁剪最初是 UIImage 的图像。庄稼起作用了。当我执行“originalImage.AsJPEG().Save”时也可以。我已经测试并确认它保存的文件是工作 JPEG。但是当我执行“croppedImage.AsJPEG().Save”时,我在其行上收到“System.NullReferenceException:对象引用未设置为对象的实例”错误。originalImage 和croppedImage 都是UIImages,唯一的区别是croppedImage 来自一个转换后的CIImage 进行了裁剪......但是为什么会导致这个错误呢?这是一个 UIImage 所以它应该可以工作,对吧?而且我知道croppedImage 中的图像存在是因为“view.Image = croppedImage;”行
以下是源代码,此链接是包含 jpg 图像的实际项目: https ://www.dropbox.com/s/erh0yrew8pyuye7/TestImageCrop.zip
ios - 添加贴纸时来自 CgImageRef 的 UIImage
最后一行返回一个 CGImageRef 对象。
我将值分配给最终图像,如下所示:
UIImage *finalImage = [UIImage ImageWithCGImageRef:cgImg];
但是我没有得到图像。任何想法为什么?任何帮助深表感谢。
iphone - 我如何在 ciimage iOS 中绘制方形或圆形环绕眼睛和嘴巴
我是 iOS 编程新手,我搜索了很多核心图片链接、答案和教程,但我仍然不完全理解。我有一个测试应用程序,它有按钮,简单的东西,当我按下某个过滤器按钮时,我有图像,它会生成过滤器并显示它。
现在我想要一个按钮,它可以检测眼睛和嘴巴并在其周围绘制矩形或圆圈,无论什么颜色和什么颜色都没有关系。我来了,直到
现在我有一个问题(我不确定这是否是正确的开始)。请帮助我想知道下一步该怎么做..提前谢谢你
ios - 裁剪 CMSampleBufferRef
我正在尝试将图像裁剪CMSampleBufferRef
为特定大小。我正在做 5 个步骤 - 1.PixelBuffer
从SampleBuffer
2. 转换PixelBuffer
为CIImage
3. 裁剪CIImage
4. 渲染CIImage
回PixelBuffer
5. 附加PixelBuffer
到SampleBuffer
. 到目前为止,我在第 4 步遇到问题 - 将图像渲染回PixelBuffer
(无法检查超出这一点)没有渲染到缓冲区(我使用相同的方法检查它CIImage imageWithCVPixelBuffer
并获得 NULL 作为返回)。非常感谢任何提示或帮助。
cgimage - CIBloom使图像更小
我正在使用 CIBloom 来模糊 a 中的一些文本CGImage
,但正在发生的是 CIBloom 过滤器似乎使我的图像变得非常小。
当过滤器内核变大时效果更差。我有点预料到这一点,但我需要一种方法来关闭它,或者一个公式来调整图像的大小,以便每个字母的大小与它最初的大小完全相同。我故意在源图像上留出边距。
CIBloom过滤器之前:
CIBloom过滤器后:
模糊过滤器的代码:
我喜欢CIBloom
过滤器,但我需要结果与我的原始图像大小相同,而不是下采样。
ios6 - 旋转CGPoints;CIVector CGAffineTransform?
我有 4 个 CGPoints 形成一个不规则的图形。如何将该图形旋转 90 度并获得新的 CGPoints?
FWIW,当图形是 CGRect 通过交换 origin.x 和 origin.y 以及宽度和高度时,我能够“伪造”这个。我是否需要做类似的事情(计算点之间的距离/方向)或者是否有可以应用于 CIVector 的 AffineTransform?
欢迎提示和/或指向教程/指南。
可跳过的项目背景:
用户将为文档拍照,应用程序将对它们进行 OCR。由于用户很难获得不倾斜的图像,我允许他们围绕文本主体创建一个 4 点图形,然后应用程序将其倾斜回矩形。传入的相机图像是 CIImages,因此它们的原点已经在左下角,因此必须从 UIView 旋转 4 点图形以匹配...