- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
感谢您的关注。
这是我的代码
CIImage *result = _vignette.outputImage;
self.mainImageView.image = nil;
//self.mainImageView.contentMode = UIViewContentModeScaleAspectFit;
self.mainImageView.image = [UIImage imageWithCIImage:result];
self.mainImageView.contentMode = UIViewContentModeScaleAspectFit;
此处 _vignette
已正确设置滤镜,并且图像效果已正确应用于图像。
我使用的是分辨率为 500x375 的源图像。我的 imageView 几乎具有 iPhone 屏幕的分辨率。因此,为了避免拉伸(stretch),我使用了 AspectFit。
但是当我将结果图像分配回我的 imageView 时应用效果后,它会拉伸(stretch)。无论我使用哪种 UIViewContentMode
。它不起作用。似乎它总是应用 ScaleToFill
而不管我给出的过滤器。
知道为什么会这样吗?非常感谢任何建议。
最佳答案
(1) Aspect Fit 确实拉伸(stretch)图像 - 以适合。如果您根本不想拉伸(stretch)图像,请使用居中(例如)。
(2) imageWithCIImage
给你一个非常奇怪的野兽,一个不基于 CGImage 的 UIImage,因此不受图层显示的正常规则的影响。它实际上只是 CIImage 的薄包装,这不是您想要的。您必须通过 CGImage 将 CIFilter 输出转换(渲染)为 UIImage,从而为您提供一个实际上具有一些位(CGImage,位图)的 UIImage。我在这里的讨论为您提供了演示代码:
http://www.apeth.com/iOSBook/ch15.html#_cifilter_and_ciimage
换句话说,在某些时候,您必须调用 CIContext createCGImage:fromRect:
以从 CIFilter 的输出生成 CGImageRef,并将其传递到 UIImage。在您这样做之前,您不会将过滤器操作的输出作为真正的 UIImage。
或者,您可以将 imageWithCIImage
中的图像绘制到图形上下文中。例如,您可以将其绘制到图像图形上下文中,然后使用那个图像。
您不能做的是直接显示来自 imageWithCIImage
的图像。那是因为它不是图像!它没有底层位图 (CGImage)。那里没有。它只是一组用于导出图像的 CIFilter 指令。
关于iphone - 应用 CIFIlter 后设置 UIImageView 内容模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15878060/
我正在尝试对 ARSCNView 中的相机实时 Steam 图像应用模糊效果。我检查了 WWDC 视频。他们只提到了使用 Metal 进行自定义渲染,但我在网上没有找到任何完整的示例。知道怎么做吗?
是否有任何 CIFilter 具有与 Photoshop“添加噪点”滤镜类似的效果? 最佳答案 您可以使用CIRandomGenerator与一些混合过滤器(加法、筛选或其他)结合使用。总效应链应该是
是否有显示所有 CIFilter 及其各自值范围的作弊列表? 苹果怎么能逃脱写doc like this列出所有过滤器而不告诉我们可能的范围? 来吧苹果。 最佳答案 我已经对其进行了更新,以使其能够正
static func effectTransfer(image: UIImage) -> UIImage { let coreImage = CIImage(image: image)
我正在拍摄 subview 的快照并将其转换为图像: let image = UIImage(view: swiftyDraw) let scaledImage = scaleImage(image:
我需要有关如何在内存上高效使用 CIFilter 的建议。基本上,我将两个过滤器链接在一起。棘手的部分是我必须先将 UIImage 转换为 CIImage,然后再调用过滤器。代码贴在下面: CIIma
我发现 CIFilter 与 CIGaussianBlur 滤镜的行为非常奇怪。 我正在对不同的图像快速连续地多次执行此方法。有时,将返回“最后处理的图像”而不是我发送的图像。例如,如果我有图像: A
谁能解释一下,我们如何为过滤器中的不同输入参数识别正确的值。我尝试了默认值,但只有少数过滤器对其他不起作用的过滤器提供了适当的效果。 谁能指导我以正确的方式实现 CIFilter? 谢谢 最佳答案 内
我知道可以使用像素缓冲区更改像素的颜色,如下面的代码所示,但我只想使用“CIFilter”模糊像素而不是更改颜色。我不想在整个图像上应用“CIFilter”。 //data pointer – sto
我正在尝试使用以下代码向图层添加模糊效果。 但它不起作用,有什么建议吗? let layer = CALayer() layer.frame = CGRect(x: 150, y: 150, widt
我正在将 CIFilter 应用于 UIImage,但它会减慢我的 UITableView 上的滚动速度。有什么我可以做的吗? - (UITableViewCell *)tableView:(UITa
我正在使用 CISourceOverCompositing 混合两个图像。使用此代码可以正常处理相同大小的图像: CIFIlter *filter1 = [CIFilter filterWithNam
我目前正在尝试用一张由不同的 CIFilter 过滤的图片填充一个 Collection View 。我使用 apples 的方式来获取一组过滤器。 let filterNames = CIFilte
我正在将 CIFilter 应用于肖像图像。由于某种原因,它顺时针旋转了 90 度。我怎样才能解决这个问题?我的代码在下面 var imgOrientation = oImage.imageOrien
我编写了一个自己的 CIFilter 内核,它对相机信号进行一些图像处理。它需要两个参数:参数一是“inputImage”(当前相机图像),参数2是“backgroundImage”,它正在使用第一个
我在图像上添加多个 CIFilter 时遇到问题,例如当我添加亮度滤镜然后尝试添加对比度图像时,图像将变为原始图像(丢失亮度滤镜),然后添加对比度滤镜。 - (IBAction)brightnessS
有谁知道自定义 CIFilter 的图像大小有什么限制?我创建了一个过滤器,当图像高达 2 兆像素时,它可以按预期执行,但当图像更大时,会产生非常奇怪的结果。我已经在我的 cocoa 应用程序和 qu
我想以网格和列表模式复制停靠堆栈的背景。背景是半透明的黑色,带有模糊效果: Example of dock stack in grid mode http://www.thecustommac.com
我正在使用以下代码进行曝光调整及其工作。我需要锐化、降噪、高光、色温、阴影、模糊等滤镜名称。 [CIFilter filterWithName: @"CIExposureAdjust"
我有一个圆形 ImageView 。我设置了它的图像并给出了色调效果,如下所示,效果很好。 let filter = CIFilter(name: "CIPhotoEffectTonal")!
我是一名优秀的程序员,十分优秀!