iOSプロジェクトにGPUImageを追加するにはどうすればよいですか?

2012-09-27 objective-c ios gpuimage

画像にフィルターを追加するカメラ/写真アプリを作ろうとしています。 Brad LarsonのGPUImageを聞いたことがあるので、ダウンロードして操作し、コードに慣れるようにしました。

今、私はXcodeで新しいプロジェクトを作成し、それを私のフレームワークに追加しましたが、新しいプロジェクトでそれを使用する方法がわかりません。

新しいプロジェクトでGPUImageを適切に使用するにはどうすればよいですか?

Answers

このページを読んでくださいhttp://www.sunsetlakesoftware.com/2012/02/12/introducing-gpuimage-framework and this: https : //github.com/BradLarson/GPUImage

注:フレームワーク/ソースフォルダー内のすべてのソースコードファイルをプロジェクトにコピーし、GPUImage.hをインポートして使用できます。

よろしく!

GitHubプロジェクトの最初のページ、および「フレームワークをiOSプロジェクトに追加する」セクションのREADME.mdに記述したステップバイステップの指示よりも、どのようにすれば明確になるかわかりません。

フレームワークの最新のソースコードを入手したら、 アプリケーションに追加するのは簡単です。ドラッグして開始します GPUImage.xcodeprojファイルをアプリケーションのXcodeプロジェクトに埋め込みます プロジェクトのフレームワーク。次に、アプリケーションのターゲットに移動します ターゲットの依存関係としてGPUImageを追加します。最後に、ドラッグする必要があります GPUImageフレームワークの製品のlibGPUImage.aライブラリ フォルダーをライブラリとリンクバイナリビルドフェーズに アプリケーションのターゲット。

GPUImageを他のフレームワークにリンクする必要があります アプリケーションなので、リンクされたライブラリとして以下を追加する必要があります あなたのアプリケーションターゲットで:

  • CoreMedia
  • CoreVideo
  • OpenGLES
  • AVFoundation
  • QuartzCore

また、フレームワークヘッダーを見つける必要があるため、 プロジェクトのビルド設定は、ヘッダー検索パスを相対パスに設定します アプリケーションからのフレームワーク/サブディレクトリへのパス GPUImageソースディレクトリ。このヘッダー検索パスを再帰的にします。

アプリケーション内でGPUImageクラスを使用するには、次のコードを含めるだけです。 以下を使用したコアフレームワークヘッダー:

#import "GPUImage.h"

注:エラー「Unknown class GPUImageView in インターフェースビルダー」などでインターフェースを構築しようとした場合 Interface Builder。他のリンカーに-ObjCを追加する必要がある場合があります。 プロジェクトのビルド設定のフラグ。

また、これをiOS 4.xにデプロイする必要がある場合は、 現在のバージョンのXcode(4.3)では、コアを弱リンクする必要があります 最終的なアプリケーションのビデオフレームワーク、または メッセージ「シンボルが見つかりません:_CVOpenGLESTextureCacheCreate」 App Storeへのアップロード用またはアドホック用のアーカイブを作成します 分布。これを行うには、プロジェクトの[ビルドフェーズ]タブに移動し、 Link Binary With Librariesグループを展開して、 リストのCoreVideo.framework。遠くで設定を変えて リストの右側の必須からオプションへ。

さらに、これはARC対応のフレームワークであるため、使用する場合 これは、iOS 4.xをターゲットとする手動参照カウントアプリケーション内で、 他のリンカーフラグにも-fobjc-arcを追加する必要があります。

この動作を確認するには、フレームワークに同梱されている多くのサンプルアプリケーションを見てください。

おそらく、GPUImageをプロジェクトに統合する最も簡単な方法は、cocopodsを使用すること 。 GPUImageのCocoaPodsリポジトリは実際にはBradによって管理されていませんが、維持管理はかなり定期的であり、統合が簡単になります。

>入手する

ビジュアルディレクションを使用してiOS用 Xcodeの Swift 5でこれを行う方法は次のとおりです。

始める前に2つのこと。

  • このプロセスは、プロジェクトが正しくなるまで(何度か試してみました)、プロジェクトのコピーまたは複製から開始するか、新しいプロジェクトで開始する必要があります。何か問題が発生した場合は、元のプロジェクトをそのまま維持したい
  • コピーしようとしているGPUImageを含むプロジェクトを開いている場合は、必ず最初に閉じてください。すでに開いているプロジェクトがあるというエラーが表示されます

ここに画像の説明を入力してください

1- GPUImage gitHubページに移動

2-右上隅にある緑色の[ Code ]ボタンをクリックし、[ Download Zip ]をクリックします。

ここに画像の説明を入力してください

3-現在のXcodeプロジェクト(GPUImageを使用するプロジェクト)で、青色のプロジェクトアイコンの下にある最初のフォルダーをクリックします

ここに画像の説明を入力してください

4-その後、Xcodeの上部に移動し、[ File ]> [ Add Files to "yourProject" ]をクリックしFile

ここに画像の説明を入力してください

5-新しいウィンドウが表示されたら、 Downloads (または2番目のステップでGPUImageをダウンロードした場所)> GPUImage3-master > framework > GPUImage.xcodeprojし、[ Add ] Addクリックします。 Copy Items if NeededCreate groupsCreate groupsがチェックされていることを確認することが重要です。

ここに画像の説明を入力してください

6-これで、ステップ3の同じフォルダーの下にあるXcodeプロジェクト内のGPUImage.xcodeprojれます(それを使用して何もする必要はありません)。

ここに画像の説明を入力してください

7- メインプロジェクトのblue project icon > [ Build Phases ]をクリックします。中央/中央のペインがTARGETSはずです。 GPUImage.xcodeproj、つまりWRONGフォルダをクリックしないでください。

ここに画像の説明を入力してください

8-まだビルドフェーズの下で、[ Dependencies ]をクリックしてから、 plus signクリックします。

ここに画像の説明を入力してください

9-ポップアップが表示されGPUImage_iOSGPUImage_iOSを選択し、[ Add GPUImage_iOSを選択します(macOSバージョンではなく、必ずiOSバージョンを選択してAdd

ここに画像の説明を入力してください

10-依存関係の下にGPUImage_iOS依存Dependenciesが表示されます(ここでは何もする必要はありません)

ここに画像の説明を入力してください

11- Build Phases下で、[ Link BinaryとライブラリをLink Binary ]をクリックしてから、 plus signクリックします。

ここに画像の説明を入力してください

12- [ ワークスペース ] > [ GPUImage.framework from 'GPUImage_iOS' target ... ] > [ GPUImage.framework from 'GPUImage_iOS' target ...選択してポップアップが表示されたら、[ Addを押します(macOSバージョンではなくiOSバージョンを選択していることを確認してください)

ここに画像の説明を入力してください

13-ライブラリがリンクされました(ここで何もする必要はありません)

ここに画像の説明を入力してください

14(a)-これは重要です。ビルドフェーズの下に[ ファイルコピー ]フォルダーがない場合は、Xcodeの上部に移動して[ Editor > [ Add Build Phase Add Copy Files Build Phase > [ Add Copy Files Build Phase Add Build Phase選択します。フォルダーが既に存在する場合、フォルダーが既に存在する場合の対処方法がわかりません

ここに画像の説明を入力してください

14(b)-なんらかの理由でAdd Copy Files Build Phaseグレー表示されている場合は、これを実行するか、左上隅のBuild Phaseplus sign押してから、[ New Copy Files Phase選択します。

ここに画像の説明を入力してください

15-ビルドフェーズの下に新しいCopy Filesディレクトリが表示されます

ここに画像の説明を入力してください

16- Copy Filesがまだ開いていない場合は、トグルボタンを押してCopy Files開き、 Destination横にあるResourcesFramework変更しFramework

ここに画像の説明を入力してください

17- [ Copy Files下で、 plus sign押しCopy Files 。ポップアップが表示されたら、これがiOSプロジェクトの場合は、[ Products下で上部の GPUImage.frameworkを選択し、[追加GPUImage.frameworkを押します。この最後のステップはブラッドの指示の下にあります

新しいファイルのコピービルドフェーズを追加し、宛先をフレームワークに設定します。 上部のGPUImage.framework(iOSの場合)以下を追加します GPUImage.framework(Macの場合)

ここに画像の説明を入力してください

GPUImage.frameworkCopy Files追加されました

ここに画像の説明を入力してください

19-ビルドフェーズ画面は次のようになります

ここに画像の説明を入力してください

20-プロジェクトをクリーンするShift+Command+K

21- GPUImageを使用する予定の任意のファイルで、先頭に移動してimport GPUImageと入力し(オートコンプリートの下に表示されるはずです)、プロジェクトをビルドします。

ここに画像の説明を入力してください

22- GPUImageのクラスとメソッドがプロジェクト内で機能するかどうかをテストして確認する

// nothing is supposed to actually happen here, just test to see if the SmoothToonFilter() class and filterWithOperation() method are recognized without any errors
let testImage = UIImage(named:"some_image_from_your_assets")!
let toonFilter = SmoothToonFilter()
let _ = testImage.filterWithOperation(toonFilter)

ここに画像の説明を入力してください

できた!

Related