[iOS] NYXImagesKit を使って UIImage を編集する

[iOS] NYXImagesKit を使って UIImage を編集する

2015.01.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

NYXImagesKit

遅くなりましたが明けましておめでとうございます。本年もよろしくお願い致します。

iOS アプリで画像のアップロード機能を実装するとき、UIImage のリサイズを行うことがよくあると思います。 こういった編集処理は一度実装してしまえばソースコードを使い回せば良いのですが、頼れるのであれば OSS に頼ってしまいたいところです。

そこで今回はiOSオープンソースライブラリ徹底活用にも紹介されている、画像編集の定番 OSS の「NYXImagesKit」を使って UIImage をリサイズする方法をご紹介したいと思います。なお NYXImagesKit はリサイズ以外にも編集機能が備わっているので、それらも一緒に解説します。

導入方法

導入は CocoaPods を使うのが簡単です。Podfile に NYXImagesKit を追加して…

			
			
pod 'NYXImagesKit'

		

pod install コマンドを実行です。

			
			
pod install

		

使いかた

ひと通りの編集処理を試してみました。ソースコードを GitHub で公開しているので、いますぐ実機で確認したい!というかたはこちらから Clone してビルドしてください。

UIImage+Filtering

明度, コントラスト, エッジ, エンボス, ガンマ, グレースケール, 色相反転, 透明度, セピア, シャープ, アンシャープの調整ができます。

明度調整

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image brightenWithValue:0.5 * 255]; // -255 ~ 255 で指定

		

実行結果

brighten

コントラスト調整

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image contrastAdjustmentWithValue:0.5 * 255]; // -255 ~ 255 で指定

		

実行結果

contrast

エッジ検出

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image edgeDetectionWithBias:5];

		

実行結果

edge

エンボス効果

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image embossWithBias:5];

		

実行結果

emboss

ガンマ補正

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image gammaCorrectionWithValue:8]; // 0.01 ~ 8

		

実行結果

gamma

グレースケール

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image grayscale];

		

実行結果

grayscale

色相反転

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image invert];

		

実行結果

invert

透明度

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image opacity:0.5f]; // 0.0 ~ 1.0

		

実行結果

opacity

※ 透過していることを確認するため、グレー地の背景を設定しています。

セピア

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image sepia];

		

実行結果

sepia

シャープ

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image sharpenWithBias:5];

		

実行結果

sharpen

アンシャープ

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image unsharpenWithBias:5];

		

実行結果

unsharpen

UIImage+Blurring

ブラーです。いわゆるぼかしです。

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
[image gaussianBlurWithBias:5];

		

実行結果

blur

UIImage+Masking

もう一つの UIImage でマスクをかけることができます。

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image maskWithImage:[UIImage imageNamed:@"mask.png"]];

		

実行結果

mask

※ マスクしていることを確認するため、グレー地の背景を設定しています。

UIImage+Resizing

リサイズは、サイズ指定のクロップとアスペクト比を維持したスケールができます。

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image scaleToFitSize:CGSizeMake(120, 80)];

		

実行結果

resize

※ スケールしていることを確認するため、グレー地の背景を設定しています。

UIImage+Rotating

回転。反転もできます。

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image rotateInDegrees:180];

		

実行結果

rotate

UIImage+Reflection

リフレクション(反射)を作ります。ちょっと前にすごく流行ったやつですね。

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [image reflectedImageWithHeight:image.size.height fromAlpha:0.0f toAlpha:0.5f];

		

実行結果

reflection

※ 透過していることを確認するため、グレー地の背景を設定しています。

UIImage+Enhancing

赤目補正などのような自動補正です。処理にちょっと時間がかかります。

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
image = [[image autoEnhance] redEyeCorrection];

		

実行結果

enhance

UIImage+Saving

NYXImagesKit は編集以外にローカルストレージに保存する機能も持っています。便利ですね!

			
			
UIImage *image = [UIImage imageNamed:@"sample"];
[image saveToPhotosAlbum];

		

まとめ

そのままでは面倒だった処理も、OSS を使うと楽ちんですね!サンプルコードを参考に、ぜひ使ってみてください。

謝辞

画像素材はふぉとさいくさんからいただきました。ありがとうございました!

この記事をシェアする

FacebookHatena blogX

関連記事