1

これは、私がしばらくの間興味を持っていたものであり、ショーストッパーの問題ではありません。

サイズ変更可能な画像を作成するためのこのよく知られ-[UIImage resizableImageWithCapInsets:]た API があります。これは、特に Retina iPad で可変サイズのボタンやフレームをテクスチャリングするときに非常に便利で、特にそれらがたくさんあり、画像リソースでアプリ バンドルが肥大化するのを避けたい場合に便利です。

キャップ インセットは通常、特定の画像に対して一定であり、拡大するサイズに関係ありません。このように言い換えることもできます: キャップのインセットは、特定の画像の特徴です。論理的にイメージに属している場合、新しいインスタンスを作成する必要があるすべての場所で指定するのではなく、イメージと一緒に(ある種のメタデータとして)保存しないでください。

日常業務において、これは主にプロセスにおける人的エラーの可能性を排除することにより、重大な利点をもたらす可能性があります。画像を作成するデザイナーが、エクスポート時に画像ファイル自体に適切な上限値を埋め込むことができれば、開発者はコードにマジック ナンバーを記述して、画像が変更されるたびに更新を維持する必要がなくなります。resizableImage API は、キャップを自動的に読み取って適用できます。一体、上のカテゴリでも十分UIImageです。

したがって、私の質問は次のとおりです。画像にメタデータを埋め込む信頼できる方法はありますか?

強調したいのは、次の 2 つの言葉です。

  • 信頼できる: オプションの PNG チャンクに関するいくつかのエントリを既に見ましたが、iOS PNG オプティマイザーが起動すると、それらは存在しなくなるのではないかと心配しています。または、それを防ぐ方法はありますか? (オプティマイザにその仕事をさせることに加えて)
  • 埋め込み: Apple と同じようにファイル名にメタデータを含めることを考えました。つまり、"@2x"、"~ipad" などですが、"image-20.0-20.0-40.0-20.0@2x. png" は正しい方法ではないようです。

誰でもこれに対するスマートな解決策を思い付くことができますか?

4

1 に答える 1

0

Android には、基本的にイメージとそれを構築するためのメタデータの断片である、nine-patch と呼ばれるファイル タイプがあります。おそらく、それを複製するクラスを作成できます。http://developer.android.com/reference/android/graphics/NinePatch.html

于 2012-05-07T21:58:10.000 に答える