[iPhone] 画像をぼかす、モザイク化する

画像をぼかす、モザイク化するにはどうすればいいでしょうか。UIGraphicsBeginImageContextを使ったやり方やCALayerでラスタライズする方法もあります。
 

Swift 3.1
Xcode 8.3

 

モザイク化

 
最初にモザイク化する画像をAssetsに入れます。
 

 

UIGraphicsBeginImageContext

 
このモザイク化は、元の画像を縮小して、それを再度拡大することで実現させます。拡大するときには補間させないでそのまま広げてしまう感覚です。補間させると画質が落ちますがそれなりの画像になってしまいます。

実際にオーソドックスに画像を1/10にしてから10倍に拡大するとこのようになります。
 
ViewController.swift

 

 

CALayer

 
CALayerを使いラスタライズ化を設定します。これはベクター形式などの画像データをBMPのようなピクセル、ドットに置き換えることです。

imgView.layer.shouldRasterize = true;
ラスタライズのスケールを設定します。
imgView.layer.rasterizationScale = 0.1;

これで、それなりの画像のぼけを出せます。

ViewController.swift

 

 
画質は多少異なりますが、コード量は圧倒的に少ないです。
 
 
関連ページ:


ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする