“完全错误”未能呈现921600像素,因为CIKernel的ROI函数不允许平铺。每次我尝试用翻译来转换一个ciImage。
代码很简单:
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函数不允许平铺相关的决议。
发布于 2018-03-16 15:18:26
原谅我迟到了,但我只是遇到了同样的错误,可能会有一些帮助。我使用了一个不同的过滤器(CIShadedMaterial),并通过将我的图像缩小到更小的大小来解决这个问题。这是我的密码:
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!
}用法:
myImage = myImage.resizeToBoundingSquare(640)https://stackoverflow.com/questions/48775950
复制相似问题