使用 GPUImagePerlinNoiseFilter 生成图像
Generate image with GPUImagePerlinNoiseFilter
我是 GPUImage 的新人。我想以给定的大小创建一个嘈杂的背景。似乎我应该使用 GPUImagePerlinNoiseFilter,但我不知道如何生成 图像。
let noiseFilter = GPUImagePerlinNoiseFilter()
noiseFilter.colorStart = GPUVector4(1, 1, 1, 0)
noiseFilter.colorStart = GPUVector4(1, 1, 1, 1)
noiseFilter.scale = 0.5
接下来我该做什么?
在提供的噪声发生器中,他们也使用输入图像(您设置大小和颜色),所以我认为我是正确的。
这是我的解决方案:
import UIKit
import GPUImage
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let imageView = UIImageView(frame: CGRectMake(10, 50, 100, 100))
imageView.image = createNoiseImage(CGSizeMake(100, 100), color: UIColor.whiteColor())
view.addSubview(imageView)
}
private func createNoiseImage(size: CGSize, color: UIColor) -> UIImage {
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, CGRectMake(0, 0, size.width, size.height))
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();
let filter = GPUImagePerlinNoiseFilter()
return filter.imageByFilteringImage(image)
}
}
使用默认的过滤器参数,它会产生这个:
我是 GPUImage 的新人。我想以给定的大小创建一个嘈杂的背景。似乎我应该使用 GPUImagePerlinNoiseFilter,但我不知道如何生成 图像。
let noiseFilter = GPUImagePerlinNoiseFilter()
noiseFilter.colorStart = GPUVector4(1, 1, 1, 0)
noiseFilter.colorStart = GPUVector4(1, 1, 1, 1)
noiseFilter.scale = 0.5
接下来我该做什么?
在提供的噪声发生器中,他们也使用输入图像(您设置大小和颜色),所以我认为我是正确的。 这是我的解决方案:
import UIKit
import GPUImage
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let imageView = UIImageView(frame: CGRectMake(10, 50, 100, 100))
imageView.image = createNoiseImage(CGSizeMake(100, 100), color: UIColor.whiteColor())
view.addSubview(imageView)
}
private func createNoiseImage(size: CGSize, color: UIColor) -> UIImage {
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, CGRectMake(0, 0, size.width, size.height))
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();
let filter = GPUImagePerlinNoiseFilter()
return filter.imageByFilteringImage(image)
}
}
使用默认的过滤器参数,它会产生这个: