6

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

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

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

4

4 に答える 4

16

GitHubプロジェクトの最初のページとREADME.mdの「iOSプロジェクトへのフレームワークの追加」セクションに記載したステップバイステップの手順よりもはるかに明確にできる方法がわかりません。

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

GPUImageは、アプリケーションにリンクするために他のいくつかのフレームワークを必要とするため、アプリケーションターゲットにリンクライブラリとして以下を追加する必要があります。

  • CoreMedia
  • CoreVideo
  • OpenGLES
  • AVFoundation
  • QuartzCore

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

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

#import "GPUImage.h"

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

また、これをiOS 4.xにデプロイする必要がある場合、現在のバージョンのXcode(4.3)では、最終的なアプリケーションでコアビデオフレームワークを弱くリンクする必要があるようです。そうしないと、「シンボルが見つかりません」というメッセージが表示されてクラッシュします。 :_CVOpenGLESTextureCacheCreate "は、AppStoreへのアップロードまたはアドホック配布用のアーカイブを作成する場合に使用します。これを行うには、プロジェクトの[ビルドフェーズ]タブに移動し、[バイナリとライブラリのリンク]グループを展開して、リストからCoreVideo.frameworkを見つけます。リストの右端にある設定を必須からオプションに変更します。

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

これが実際に動作していることを確認するには、フレームワークに付属している多くのサンプルアプリケーションのいずれかを見てください。

于 2012-09-28T13:31:54.150 に答える
5

このページhttp://www.sunsetlakesoftware.com/2012/02/12/introducing-gpuimage-frameworkとこれをお読みください: https://github.com/BradLarson/GPUImage

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

よろしく!

于 2012-09-27T01:57:35.857 に答える
2

Visual Directions を使用してXcode for iOSのSwift 5でそれを行う方法は次のとおりです。

始める前に 2 つのこと。

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

ここに画像の説明を入力

1- GPUImage gitHub ページに移動します

2- 右上隅にある緑色のCodeボタンをクリックしてから、Download Zip

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

5- 新しいウィンドウが表示されDownloadsたら (または 2 番目の手順で GPUImage をダウンロードした場所) > GPUImage3-master> framework>GPUImage.xcodeprojに移動し、 をクリックしますAddCopy Items if Needed確認し、確認することが重要ですCreate groups

ここに画像の説明を入力

6-GPUImage.xcodeprojステップ 3 と同じフォルダーの下に Xcode プロジェクトが表示されます (何もする必要はありません)。

ここに画像の説明を入力

7-メインプロジェクトのblue project icon>をクリックするBuild Phasesと、中央/中央のペインがオンになりTARGETSます。間違ったフォルダーであるGPUImage.xcodeprojをクリックしないでください。

ここに画像の説明を入力

8- Build Phases の下にある間Dependenciesにクリックしてから、plus sign

ここに画像の説明を入力

9-ポップアップが表示されたら、選択してGPUImage_iOSから選択しますAdd(macOSバージョンではなくiOSバージョンを選択してください)

ここに画像の説明を入力

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

ここに画像の説明を入力

11 -ライブラリをクリックしたまま、[ライブラリ] をクリックしますBuild PhasesLink Binaryplus sign

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

14(a)- これは重要です。Build Phases の下にCopy Files フォルダーがない場合は、Xcode の上部に移動してEditor> Add Build Phase>を選択しますAdd Copy Files Build Phase。フォルダーが既に存在する場合、フォルダーが既に存在する場合はどうすればよいかわかりませんCopy Filesフォルダーは最初は存在しなかったので、手順 14(b) を使用して作成しました。既に存在する場合は、それを開いてステップ16に進むと思います

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ここに画像の説明を入力

16-Copy Filesまだ開いていない場合は、トグル ボタンを押して開き、次へDestination変更ResourcesしますFramework

ここに画像の説明を入力

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

新しい Copy Files ビルド フェーズを追加し、その宛先を Frameworks に設定し、上部の GPUImage.framework (iOS の場合)または下部の GPUImage.framework (Mac の場合) をそれに追加します。

ここに画像の説明を入力

18-GPUImage.frameworkが追加されましたCopy 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)

ここに画像の説明を入力

終わり!

于 2020-07-31T23:04:49.517 に答える