- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Swift 1.2 中使用了这段代码(改编自 SO 上的 Objective-C 代码片段)来对图像应用模糊效果。
它工作正常,但我无法将其转换为 Swift 2,我不确定我是否理解错误消息,而且我找不到有关更改内容的文档。
错误消息:
'_' is not convertible to 'String'
还有:
Type of expression is ambiguous without more context
适用于 1.2 的扩展:
extension NSImage {
func gaussianBlurOfRadius(radius: CGFloat) -> NSImage {
let image = self
image.lockFocus()
let beginImage = CIImage(data: image.TIFFRepresentation!)
// error message highlights the next line
let params = [kCIInputImageKey: beginImage, kCIInputRadiusKey: radius]
let filter = CIFilter(name: "CIGaussianBlur", withInputParameters: params)
var output = filter.valueForKey("outputImage") as! CIImage
let rect = NSMakeRect(0, 0, self.size.width, self.size.height)
output.drawInRect(rect, fromRect: rect, operation: NSCompositingOperation.CompositeSourceOver, fraction: 1)
image.unlockFocus()
return image
}
}
更新:
按照 Duncan 的想法,我在声明中添加了显式类型:
let params: [String: AnyObject] = [kCIInputImageKey: beginImage, kCIInputRadiusKey: radius]
但这并不能解决问题,尽管它删除了有关类型歧义的错误消息。
最佳答案
extension NSImage {
func gaussianBlurOfRadius(radius: CGFloat) -> NSImage {
let image = self
image.lockFocus()
let beginImage = CIImage(data: image.TIFFRepresentation!)!
let params = [kCIInputImageKey : beginImage, kCIInputRadiusKey: radius]
let filter = CIFilter(name: "CIGaussianBlur", withInputParameters: params)!
let output = filter.valueForKey("outputImage") as! CIImage
let rect = NSMakeRect(0, 0, size.width, size.height)
output.drawInRect(rect, fromRect: rect, operation: NSCompositingOperation.CompositeSourceOver, fraction: 1)
image.unlockFocus()
return image
}
}
或
extension NSImage {
func gaussianBlurOfRadius(radius: CGFloat) -> NSImage {
let image = self
image.lockFocus()
let beginImage = CIImage(data: image.TIFFRepresentation!)
let filter = CIFilter(name: "CIGaussianBlur")!
filter.setValue(beginImage, forKey: kCIInputImageKey)
filter.setValue(radius, forKey: kCIInputRadiusKey)
let output = filter.valueForKey("outputImage") as! CIImage
let rect = NSMakeRect(0, 0, size.width, size.height)
output.drawInRect(rect, fromRect: rect, operation: NSCompositingOperation.CompositeSourceOver, fraction: 1)
image.unlockFocus()
return image
}
}
关于swift - CIFilter 和 Swift 2 错误 : '_' is not convertible to 'String' + Type of expression is ambiguous without more context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278679/
我正在尝试对 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")!
我是一名优秀的程序员,十分优秀!