私はPhotoshopモックアップを複製するUIImageでガウスのぼかしを実行しようとしています。範囲外のUIImageをぼかします(Photoshopスタイル)
所望の行動:Photoshopで 、Iは、ガウスぼかしフィルタを実行すると、画像層はぼやけたエッジの結果として大きくなります。
観測された動作: GPUImageを使用すると、UIImagesを正常にぼかすことができます。ただし、新しいイメージは元の境界で切り取られ、ハードエッジが残っています。
設定UIImageView.layer.masksToBounds = NO;
は、画像がビューではなく切り取られるので、助けになりません。
また、ぼかし、サイズ変更する前に、UIImageをよりクリアな画像の中央に配置してみました。これも役に立たなかった。
この「Photoshopスタイル」のぼかしを実現する方法はありますか?
UPDATE作業溶液ブラッド・ラーソンの感謝:
UIImage sourceImage = ...
GPUImagePicture *imageSource = [[GPUImagePicture alloc] initWithImage:sourceImage];
GPUImageTransformFilter *transformFilter = [GPUImageTransformFilter new];
GPUImageFastBlurFilter *blurFilter = [GPUImageFastBlurFilter new];
//Force processing at scale factor 1.4 and affine scale with scale factor 1/1.4 = 0.7
[transformFilter forceProcessingAtSize:CGSizeMake(SOURCE_WIDTH * 1.4, SOURCE_WIDTH * 1.4)];
[transformFilter setAffineTransform:CGAffineTransformMakeScale(0.7, 0.7)];
//Setup desired blur filter
[blurFilter setBlurSize:3.0f];
[blurFilter setBlurPasses:20];
//Chain Image->Transform->Blur->Output
[imageSource addTarget:transformFilter];
[transformFilter addTarget:blurFilter];
[imageSource processImage];
UIImage *blurredImage = [blurFilter imageFromCurrentlyProcessedOutputWithOrientation:UIImageOrientationUp];
"ぼかしを行う前に大きな鮮明な画像の上にUIImageを配置しようとしました"ということは、元の画像を大きなUIImageにマージしたということですか?その場合は、鮮明な画像の代わりに白い画像を使用し、白い画像にアルファチャンネルが付いていることを確認してください。私は、鮮明な画像にはアルファがないと思われ、結果は切り取られて見えます。 – bobnoble