web-dev-qa-db-ja.com

ローカルのjpegまたはpng画像ファイルをiPhoneアプリにどのようにロードしますか?

それとも、なぜ私にとってそれほど難しいのかを尋ねる必要がありますか?答えはおそらく、私はiPhone開発に不慣れであり、古い方法を捨てて、将来の新しいプラットフォームに足を踏み入れようとしているということです。最初から最後まで、このプロセスについていくつか質問があります...

  1. .pngイメージを作成した場合、プロジェクトのディレクトリ(つまり、コンピューターのハードドライブ)のどこに配置されますか?ハードドライブのどこにでも置くことができますか?Xcodeにロードすると、Xcodeはそれを正しい場所にコピーしますか?
  2. それがハードドライブのどこかに存在したら、どのようにXcodeプロジェクトに追加しますか?ファイルを「グループとファイル」ツリーの任意のフォルダにドラッグできますか?
  3. Xcodeにドラッグしたら、ポップアップ表示されるファイルコピーダイアログボックスでどのコピー設定を使用しますか?アイテムを宛先グループのフォルダチェックボックスにコピーしますか?参照タイプ?追加されたフォルダのグループを再帰的に作成しますか?
  4. .png画像がプロジェクトに適切に追加されたら、それをCGImageRefに取り込む最も簡単な方法は何ですか?ドキュメントには、CGImageCreateWithPNGDataProviderヘルパーメソッドを使用した例が示されていますが、iOS SDKではサポートされていません。 CGImageRefを使用して、画像をビットマップコンテキストに繰り返し描画したいと思います。

事前に感謝し、長い質問をお詫びします。他のいくつかのプラットフォームと比較して、このような複雑なプロセスであることに驚いています。

16
BeachRunnerFred

UIImageにロードすると、CGImageRegを取得できます。

    UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];
17
Cheddar

1)グループとファイルのどこにでも移動できますが、数が少ない場合は、リソースグループに追加することをお勧めします。ただし、[グループとファイル]のグループは、ディレクトリ構造の実際のフォルダーとは一致しません。それらは単にファイルを整理するために存在します。

2)[グループとファイル]ペインにドラッグするだけです。

3)「コピー」オプションを使用します。コピーしないことは、さまざまなプロジェクトで使用される共有リソースにリンクする場合に役立ちます。

4)CGImageRefを自分で使用したことはありませんが、UIImageが必要な場合は、その imageNamed: クラスメソッドを呼び出して、画像名に至るまでの追加のパスなしで画像名を指定できます。ファイルはアプリケーションのメインバンドルに関連していると想定されています。

5
Joost Schuur

1&2)ハードドライブのどこにでも配置できます(移動または削除しない限り、XCodeで参照を更新する必要があります)。 XCode内で、左側のモデルツリーを右クリックしてメニューから選択することにより、画像の「グループ」を作成することができます。次に、もう一度右クリックして[追加]-> [既存のファイルまたはフォルダー]に移動し、pngファイルを選択します。誤って間違ったグループに追加した場合は、XCodeモデルツリー内でドラッグできます。 FinderウィンドウからXCodeのグループにファイルをドラッグアンドドロップすることもできます。

3)「デフォルト」のコピー設定を使用するだけでよく、プロジェクトにコピーする必要はありません。参照で十分であり、再帰的にグループを作成する必要はありません。

4)画像をどうしようとしていますか? pngファイルからCGImageRefが必要ですか、それともUIImageViewまたはUIImageを使用してファイルからロードできますか、それともInterface Builderでレイアウトできます( IB)。画像の使用方法についてもう少し詳しく説明していただければ、お手伝いできるかもしれません。

3
iwasrobbed

バンドルに画像を配置してから、この関数を実行します

NSString *localPath = [[NSBundle mainBundle]bundlePath];

NSString *imageName = [localPath stringByAppendingPathComponent:[[NSString alloc]initWithFormat:@"worldMapResized.png"]];

CGRect bgRect = CGRectMake(0, 0, 500, 500);

UIImageView *myBgView = [[UIImageView alloc] initWithFrame:bgRect];

[myBgView setImage:[UIImage imageWithContentsOfFile:imageName]];

[self.view addSubview:myBgView];
2
r farnell

アプリケーションの一部として含めたい特定の画像または画像のセットがある場合は、それらをプロジェクトにドラッグするだけで(このためのリソースセクションが好きです)、UIImage "imageNamed"を使用して名前で参照できます。初期化。

個々のiPhoneにローカルな画像を読み込もうとしている場合、それはさまざまな手法を使用しますが、それはあなたが求めているものではないようです。

IPhoneプログラミングも初めてなので、お役に立てば幸いです。

2
Silverlock

XCODEの使用:

uIImageオブジェクト(ここではbuttonScanという名前)がXIBファイルに配置され、.hファイルで参照されている場合(.mファイルのviewDidLoad)、このコードを使用して、呼び出した画像ファイルを参照できます。 buttonScan01a.png([ファイル]> [ファイルを追加...]を使用してプロジェクトにインポートしました。

buttonScan.image = [UIImage imageNamed:@"buttonScan01a.png"];
[buttonScan sizeToFit];
0
tony gil