我正在尝试使用GPUImage将图像转换为灰度图像。我编写了扩展程序以完成工作。灰度的东西还可以。但是输出图像的尺寸已增加一倍。就我而言,我需要图像的大小正确。有人可以帮我吗?任何帮助将不胜感激。
这是我写的扩展名
import UIKit
import GPUImage
extension UIImage {
public func grayscale() -> UIImage?{
var processedImage = self
print("1: "+"\(processedImage.size)")
let image = GPUImagePicture(image: processedImage)
let grayFilter = GPUImageGrayscaleFilter()
image?.addTarget(grayFilter)
grayFilter.useNextFrameForImageCapture()
image?.processImage()
processedImage = grayFilter.imageFromCurrentFramebuffer()
print("2: "+"\(processedImage.size)")
return processedImage
}
}
这是控制台中的输出
编辑:我知道图像可以稍后调整大小。但是需要知道为什么会发生这种情况,并且在使用GPUImage时有什么方法可以保持图像大小。
稍后尝试缩放图像:
if let cgImage = processedImage.cgImage {
//The scale value 2.0 here should be replaced by the original image's scale.
let scaledImage = UIImage(cgImage: cgImage, scale: 2.0, orientation: processedImage.imageOrientation)
return scaledImage
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句