問題タブ [imagenamed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
31030 参照

iphone - UIImage imageNamed: FUD の払拭

2014 年 2 月の編集:この質問は iOS 2.0 のものであることに注意してください。それ以来、画像の要件と処理は大きく変わりました。Retina では画像が大きくなり、読み込みが少し複雑になります。iPad および Retina 画像のサポートが組み込まれているため、必ずコード内で ImageNamed を使用する必要があります

多くの人imageNamedが悪いと言っていますが、同じ数の人がパフォーマンスが良いと言っています - 特にUITableViews をレンダリングするとき。たとえば、この SO の質問を参照するか、iPhoneDeveloperTips.comのこの記事を参照してください。

UIImageimageNamedメソッドはリークしていたため、回避するのが最善でしたが、最近のリリースで修正されました。システムが画像をキャッシュすることを信頼できる場所と、さらに一歩進んで自分で行う必要がある場所について、合理的な決定を下すために、キャッシュアルゴリズムをよりよく理解したいと思います。私の現在の基本的な理解は、ファイル名によって参照されるNSMutableDictionary単純なものだということです。UIImagesそれは大きくなり、メモリがなくなるとずっと小さくなります。

たとえば、背後の画像キャッシュimageNamedが応答しないことを誰かが確実に知っていdidReceiveMemoryWarningますか? Apple がこれを行わない可能性は低いようです。

キャッシュ アルゴリズムに関する洞察があれば、ここに投稿してください。

0 投票する
1 に答える
3443 参照

objective-c - NSImage imageNamed: for Mac Mini は、高解像度の代わりに小さなアイコンを返します

NSImageのメソッドを使用imageNamed:して現在のコンピューターのアイコンを取得する場合、Mac Mini で実行している場合、低解像度の画像が取得されます。同じコードを MacBook から実行すると、期待どおりの高解像度のアイコンが表示されます。

私のコードは次のとおりです。

私の MacBook でそれを実行すると、すべてがうまく機能し、コンピューターの 512x512 のアイコンが表示されます。Mac Mini で実行すると、512x512 に拡大された 32x32 のアイコンが表示されます。

高解像度版を入手する方法についてのアイデアはありますか?

0 投票する
2 に答える
1229 参照

iphone - UIImageアニメーションでiPhoneアプリのメモリリーク? デバイスでの問題テスト

シミュレーターでは正常に動作するアニメーションがありますが、デバイスではクラッシュします。次のエラーが表示されます...

プログラム受信信号:「0」。デバッガーはシグナル 10 (SIGBUS) により終了しました

少し調べてみると、UIImages が解放されておらず、メモリ リークが発生していることがわかります。私はこれに慣れていないので、これが原因である可能性があるかどうか誰か教えてもらえますか? それを解決する方法も教えていただければ、それは素晴らしいことです。

画像は 480px x 480px で、それぞれ約 25kb です。私のコードは以下です...

ありがとう

0 投票する
1 に答える
141 参照

iphone - iPhoneの画像に関する問題

私のアプリケーションでは、InterfaceBuilderに基づいた多くの画像を使用しています。これの問題は、インターフェイスビルダーが「imageNamed」のようにキャッシュするため、大量のメモリを使用することです。そのため、インターフェイスビルダーでimageViewsから画像を削除し、代わりにビューが「imageWithContentsOfFile」を使用し始めたら画像を追加し始めました。文字通り何百もの画像があるので、数時間後、私はほとんど進歩しませんでした。これを行うためのもっと簡単な方法があるかどうか疑問に思っていますか?

0 投票する
6 に答える
27127 参照

objective-c - [UIImage imageWithContentsOfFile:] と高解像度画像を機能させる方法

多くの人が不満を言っているように、Retina ディスプレイ用の Apple SDK にはバグがあり、imageWithContentsOfFile は実際には 2x 画像を自動的にロードしないようです。

UIScreen スケール ファクターを検出し、低解像度または高解像度の画像を適切に読み込む関数を作成する方法について、素敵な投稿を見つけました ( http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s -retina-display/ )、しかし、ソリューションは 2 倍の画像をロードし、画像の倍率は 1.0 に設定されたままです。これにより、2 倍に拡大された 2 倍の画像が生成されます (つまり、実際の外観よりも 4 倍大きくなります)。

imageNamed は、低解像度と高解像度の画像を正確にロードしているようですが、私には選択肢がありません。

imageNamed または imageWithContentsOfFile の自動読み込みを使用せずに、低/高解像度の画像を読み込むためのソリューションはありますか? (または、最終的には imageWithContentsOfFile を正しく機能させる方法を解決します)

0 投票する
1 に答える
696 参照

iphone - UIImage imageNamed が間違った画像を返す

[UIImage imageNamed:]テーブル ビュー セルの背景を設定する方法を使用すると、奇妙な問題が発生します。

私は通常、セルに対してこれを行います。

なんらかの理由で、返された画像は「cell_background.png」ではありません。実際には、現在は別の名前 ("button_background.png") を持つ古いバージョンの画像を返します。XCode の cell_background の画像プレビューでは正しい画像が表示され、「開く」または「ファインダーで表示」でも問題ありません。プロジェクトからすべての画像を削除して元に戻そうとしましたが、問題は残ります。

imageNamed:古いバージョンのイメージまたは別の名前のイメージをロードする原因は何ですか?

0 投票する
2 に答える
1486 参照

iphone - おそらくUIImageimageNamedが原因で、切り替え後にiPhoneアプリがクラッシュする

私のアプリは10個のUIImageViewを画面上でランダムに移動し、UIImageViewがコーナーに到達すると、その画像を変更します。問題は、アプリを切り替えて自分のアプリに戻った後、アプリがクラッシュすることです。

コンソールから次のメッセージが表示されます。

クラッシュログには次のように記載されています。

問題は私が使用しているという事実によるものだと思いますUIImage imageNamed、ここにコードがあります:

ViewController.hの場合

ViewController.mの場合

アプリがクラッシュするのはなぜですか?また、どうすれば解決できますか?

0 投票する
1 に答える
2367 参照

iphone - (iphone) 同名のファイルが複数ある場合のimageNamed?

質問が言うように、リソースディレクトリの下に指定された名前のファイルが複数ある場合、imageNamed はどのように機能しますか?

同じ名前 (ただしパスは異なる) の 2 つの異なるファイルを区別する方法はありますか?

ありがとうございました

0 投票する
6 に答える
3451 参照

ios - UIImage imageNamed で外部画像を使用する

Web Apple.png と Apple@2x.png から 2 つの画像をダウンロードしています。[UIImage imageNamed:@"Apple.png"]組み込み機能を使用して、Apple.png または Apple@2x.png のどちらを表示する必要があるかを検出できるように使用したいと考えています。

これらの画像をどこに保存しますか?ドキュメントで次のことを読みました。

ファイルの名前。イメージが初めて読み込まれる場合、メソッドはアプリケーションのメイン バンドルで指定された名前のイメージを探します。

ああ、アプリケーションのメイン バンドルが最適です。これは私のコードがどのように見えるかです:

パスのフォルダーにファイルが作成されているかどうかを確認しましたが、それは正しいものでした。また、プロジェクト ファイルに Example.png をドラッグして、同じフォルダーに保存されているかどうかを確認しましたが、これも正しいものでした。

ただし、[UIImage imageNamed:@"Apple.png"]はまだ画像を取得できません。

0 投票する
1 に答える
376 参照

uiscrollview - UIImage ImageNamed メソッド

私のアプリでは、いくつかの画像を UIScrollView にロードしており、Core Graphics ルーチンを使用してスクロール ビューの一部を強調表示しています。CGImageRelease と CGContextRelease を使用して、ルーチン中にメモリを管理しました。

インストルメント (割り当て) を使用してアプリを実行すると、scrollView をスワイプするたびにメモリ消費量が増加し続けることがわかります。これにより、ある時点でアプリが非常に遅くなります。

さまざまな画像をロードするために、UIImage ImageNamed メソッドを使用します。この方法では画像が自動解放されてメモリの問題が発生するため、これはお勧めできないことを示す投稿に出くわしました。エラーの適切な場所を探しているかどうかを知りたいです。この異常なメモリ消費を探す場所はどこでしょうか?

また、Instruments の割り当てを使用すると、メモリの増加を確認できます。これらの割り当てが発生するコードを特定することは可能ですか?

よろしくお願いします。

最高のDKV