LC Photo Selector 1.01

概要

ユーザーにカメラロールから写真を選択してもらうためのプラグインです。
選択された画像は、指定のファイル名、指定のサイズで保存されます。

前回バージョン(1.0)からの更新内容

  • Android版にて高さのみに-1を指定した場合に発生する不具合を修正

使い方

  • 1.保存するサイズを指定する。
  • 2.ユーザーがボタンなどをタップすることで画像選択開始。
  • 3.選択、リサイズ、保存の終了を待ち、WWW等でテクスチャとして取得する

  • ex1.【iOS】XcodeでAssetsLibrary.frameworkを追加

  • ex2.【iOS】XcodeでCompiler Flagsに「-fno-objc-arc」を設定(Unity5の場合)
  • ex3.【Android】AndroidManifest.xmlに関して

1. 保存するサイズを指定する。

LCPhotoSelector.SetCacheSize(int width, int height);

引数はwidth(幅), height(高さ)。
-1 を指定すると、指定サイズ無しとなります。

LCPhotoSelector.SetCacheSize(300,  -1); // と指定すると、縦横比はオリジナルを元にして、横幅300に拡大縮小して保存されます。
LCPhotoSelector.SetCacheSize( -1,  -1); // と指定すると、オリジナルサイズで保存されます。
LCPhotoSelector.SetCacheSize(300, 300); // と指定すると、縦横のサイズが400以下に収まるように拡大縮小して保存されます。
                                        // (600,400)の画像なら(300,200)のサイズに縮小。(400,300)の画像なら(200,300)のサイズに縮小。

2. ユーザーがボタンなどをタップすることで画像選択開始。

LCPhotoSelector.Start(string dest);

引数 dest は選択した画像を指定のサイズに変更して保存するときのファイルパスです。
指定はフルパスを推奨致します。

(フルパスを生成する例)
string cacheFileName = "select_photo_cache.png";
switch (Application.platform) {
case RuntimePlatform.IPhonePlayer:
case RuntimePlatform.Android     : cacheFileName = System.IO.Path.Combine(Application.persistentDataPath, cacheFileName); break;
}

3. 選択、リサイズ、保存の終了を待ち、WWW等でテクスチャとして取得する

2.の手順の後、選択、リサイズ、保存は非同期の処理になります。 処理が終了を確認します。 処理の終了は下記メソッドを使用することで確認できます。

bool LCPhotoSelector.IsFinish()       // 選択終了
bool LCPhotoSelector.IsCancel()       // 選択キャンセル(選択終了を確認して呼び出してください。)
bool LCPhotoSelector.IsCacheCreated() // リサイズ、保存の終了(選択終了を確認して呼び出してください。)

選択、リサイズ、保存が終了すると、WWW等を使用してテクスチャとして選択画像を取得することが可能となります。

ex1.【iOS】XcodeでAssetsLibrary.frameworkを追加

いったんUnityでプロジェクトをビルドした後に生成されるXcodeのプロジェクトを立ち上げて XcodeのGeneralタブの下にあるにあるフレームワーク追加のボタンを利用してプロジェクトに Xcode標準装備のAssetsLibrary.frameworkを追加してください。

General->Linked Frameworks and Libraries から追加してください。

なお、Xcodeの設定画面として sample/add-assets.framework.png をご参考までに追加しております。

Alt "add assets framework"

ex2.【iOS】XcodeでCompiler Flagsに「-fno-objc-arc」を設定(Unity5の場合)

「LCPhotoSelector.m」と「LCPhotoSelector.mm」の2つのファイルのCompiler Flagsに「-fno-objc-arc」を設定して下さい。

Build Phases->Compile Sourcesから設定できます。

Alt "add compiler flags"

ex3.【Android】AndroidManifest.xmlに関して

Assets/Plugins/Android/AndroidManifest.xml を設置しておりますが、他のプラグインや、Unityのバージョンによっては問題が発生することがあると思われます。

本プラグインに必要なAndroidManifest.xmlの設定は Assets/Plugins/LCPhotoSelector/sample/AndroidManifest_LCPhotoSelector.xml に記載されているもののみとなります。 Build Settings→Android→Google Android Project のチェックボックスにチェックを入れ、出力されたプロジェクトの AndroidManifest.xml に上記の AndroidManifest_LCPhotoSelector.xml の内容を追記していただければ動作いたします。