首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制台中的迅速错误“CIKernel的ROI函数不允许平铺”

控制台中的迅速错误“CIKernel的ROI函数不允许平铺”
EN

Stack Overflow用户
提问于 2018-02-13 21:29:08
回答 1查看 829关注 0票数 1

“完全错误”未能呈现921600像素,因为CIKernel的ROI函数不允许平铺。每次我尝试用翻译来转换一个ciImage。

代码很简单:

代码语言:javascript
复制
    var flippedGradient = gradient.transformed(by:CGAffineTransform(scaleX: -1, y: 1))
    flippedGradient = gradient.transformed(by:CGAffineTransform(translationX: flippedGradient.extent.width, y: 0)) // causes error

    // mask hue 2 with gradient with transparent background
    let alphaMaskBlend2 = CIFilter(name: "CIBlendWithAlphaMask",
                                   withInputParameters: [kCIInputImageKey: hue2,
                                                         kCIInputBackgroundImageKey: transBGCI,
                                                         kCIInputMaskImageKey:flippedGradient])?.outputImage

进行翻译会导致错误,使我整个屏幕变成灰色,而不是正常地呈现图像。

相关线程,没有与如何翻译我的ciImage:iOS 10: CIKernel函数不允许平铺相关的决议。

EN

回答 1

Stack Overflow用户

发布于 2018-03-16 15:18:26

原谅我迟到了,但我只是遇到了同样的错误,可能会有一些帮助。我使用了一个不同的过滤器(CIShadedMaterial),并通过将我的图像缩小到更小的大小来解决这个问题。这是我的密码:

代码语言:javascript
复制
extension UIImage {
    func resizeToBoundingSquare(_ boundingSquareSideLength : CGFloat) -> UIImage {
        let imgScale = self.size.width > self.size.height ? boundingSquareSideLength / self.size.width : boundingSquareSideLength / self.size.height
        let newWidth = self.size.width * imgScale
        let newHeight = self.size.height * imgScale
        let newSize = CGSize(width: newWidth, height: newHeight)
        UIGraphicsBeginImageContext(newSize)
        self.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight))
        let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext();
        return resizedImage!
    }

用法:

代码语言:javascript
复制
myImage = myImage.resizeToBoundingSquare(640)
  • 我最初使用的是4096,后来意识到我把它留在了。
  • 这方面的信用确实需要归功于西蒙·格拉德曼。我没有找到确切的位置,我发现使用640x640是“足够好”,但这个链接是“足够近”。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48775950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档