1

タイトルにあるように、GaussianBlur を UIImage に実装する必要があります。チュートリアルを検索しようとしましたが、まだ実装できません。私はこれを試しました

var imageToBlur = CIImage(image: coro.logo)
var blurfilter = CIFilter(name: "CIGaussianBlur")
blurfilter.setValue(imageToBlur, forKey: "inputImage")
blurfilter.setValue(2, forKey: "inputImage")
var resultImage = blurfilter.valueForKey("outputImage") as! CIImage
var blurredImage = UIImage(CIImage: resultImage)
self.immagineCoro.image = blurredImage

CoreImage フレームワークをインポートしていますが、Xcode は 5 行目にエラー ("NSInvalidArgumentException") を表示します。一般的に gaussianBlur と CIFilter を実装するのを手伝ってくれる人はいますか?

編集:お二人に感謝しますが、別の質問があります。このように画像のほんの一部にだけぼかしを適用する必要があります

ここに画像の説明を入力

4

3 に答える 3

4

私はちょうどあなたのコードを試しました、そしてこれが私が提案する修正です、これはうまくいきます:

    let fileURL = NSBundle.mainBundle().URLForResource("th", withExtension: "png")
    let beginImage = CIImage(contentsOfURL: fileURL)
    var blurfilter = CIFilter(name: "CIGaussianBlur")
    blurfilter.setValue(beginImage, forKey: "inputImage")
    //blurfilter.setValue(2, forKey: "inputImage")
    var resultImage = blurfilter.valueForKey("outputImage") as! CIImage
    var blurredImage = UIImage(CIImage: resultImage)
    self.profileImageView.image = blurredImage

したがって、上記の部分をコメントアウトすると、うまくいき、期待どおりにぼやけた画像が得られました。ファイルパスを使用していますが、これはあなたが持っているものと違いはありません。

于 2015-08-26T01:19:49.103 に答える
0

必要な形状の CIImage グレースケール マスク イメージ、ぼかした CIImage (CIGaussianBlur を使用) を作成し、CIBlendWithMask を使用してそれらをブレンドすることができます。

CIBlendWithMask の入力は、入力画像 (ぼかした画像)、入力背景画像 (ぼかしていない画像)、およびマスク画像 (目的の形状) です。出力はあなたが望むイメージです。

于 2016-01-10T10:55:14.177 に答える