0

次の機能を持つ服、たとえばTシャツをカスタマイズするプロジェクトがあります。

  • 色を変更します。
  • 数行のテキスト (<= 4) を追加し、リストからフォントを変更します。
  • T シャツに画像や写真を追加します。
  • T シャツをカスタムの裏側に回転させます。
  • 画像を回転させ、ズームイン/ズームアウトします。
  • 結果をプロジェクトとしてローカルに保存し、それを Web サービスに送信します ( NSDictionary/json を使用すると思います)。
  • 画像として保存します。

だから私の質問は:

色の変化をシミュレートするために複数の画像を使用する必要がありますか。または、QuartzCore を使用する必要があります (QuartzCore の専門家ではありませんが、使用する必要がある場合は学習します)。または、これに対するより良いアプローチはありますか?

ありがとうございました。

4

1 に答える 1

0

これを行う簡単な方法は、T シャツの画像を CGContext にレンダリングしてから、行と列をたどって、「強い」原色を示すピクセルを目的の色合いに変更することです。明るい赤 (または他の原色) の T シャツを着ている人物の写真を撮り、コードで赤の輝度と彩度が高い (つまり、"r" 値がしきい値を超えている) ピクセルのみを変更します。 b と g のコンポーネントが低い)。

ピクセルを 1 つの値 (新しい色合い) に変更すると、輝度に変化がなくなるため、変更された画像は少し平坦に見えます。これをよりリアルにするには、各ピクセルを以前と同じ輝度にする必要があります。これを行うには、RGB から HCL のような色空間に変換します。Apple には、色空間を説明する色に関する優れたドキュメント (Mac セクション) があります (google 'site:developer.apple.com "Color Spaces"')

目標を達成するには、次のテクノロジーに取り組む必要があります。

  • CGContext を作成し、Quartz を使用して画像をレンダリングします
  • 各ピクセルの読み取り方法を理解する (ピクセルはアルファと異なる順序を持つことができます)
  • 適切なピクセルを識別する良い方法を見つけます (これらを黒または白にしてテストします)
  • 変更する各ピクセルについて、RGB を HCL に変換して輝度を取得します。
  • ピクセルを、色と色相は異なるが輝度が同じピクセルに置き換えます
  • CGContext を使用して新しい画像を作成する

これらすべてが難しいと思われる場合は、必要な色ごとに異なるイメージを用意する必要があります。

于 2012-06-26T14:02:46.100 に答える