4

iOS アプリで一部の画像を表示できません。グラフィックの一部を PNG から JPG ファイル形式に変更しました。プロジェクトに既にある PNG 画像を削除し、新しい JPG を追加すると、シミュレーターは古い PNG グラフィックを表示していました。プロジェクトで「クリーン」を実行し、シミュレーターのコンテンツをリセットしましたが、画像をまったくロードしたくないだけで、[UIImage imageNamed:@"filename"]null を返します。

一方、これらのグラフィックを PNG として保存し、 JPEG の代わりにプロジェクトに追加すると、正常に読み込まれます。しかし、画像は写真であり、PNG バージョンは JPEG よりも 7 ~ 8 倍大きいため、なぜそれらが読み込まれないのかを突き止めたいと思います。

編集:ドキュメントを確認した後(100回目のように見えます)、拡張子を指定しなかったことが間違いであることに気付きました。サポートされている画像形式 ( http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html ) には、サポートされているかなりの数の形式がリストされており、UIImage のリファレンスには次のように記載されています。

iOS 4 以降では、ファイルが PNG 形式の場合、.PNG ファイル拡張子を指定する必要はありません。

拡張子は一般的にオプションであると誤解していますが、ファイルが PNG でない場合は、それを含める必要があります。したがって、ファイルの名前が my_image.png の場合、@"my_image" または @"my_image.png" として渡すことができますが、my_image.jpg がある場合は、@"my_image.jpg" としてのみ機能します。

4

2 に答える 2

7

メソッド imageNamed: プロジェクトに *.png リソースのみをロードします。試す

  NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"imageName"] ofType:@"jpg"];
  UIImage *theImage = [UIImage imageWithContentsOfFile:filePath];
于 2013-06-20T14:37:56.780 に答える