GPUImage 将图像大小加倍 - iOS/Swift
GPUImage doubles image size - iOS/Swift
我正在尝试使用 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
}
我正在尝试使用 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
}