2

私は iOS 用のアバター メーカー アプリを設計しています。必要なことの 1 つは、ユーザーがさまざまなスタイルの目を選択できるようにすることと、それぞれの目の虹彩を異なる色にすることができることです。

次に例を示します。

アイカラーチェンジャー

組み合わせごとに PNG を生成しなくても、この機能を実装するにはどのような戦略がよいでしょうか? 何か案は?私は技術的な側面に精通していませんが、考えられる 1 つのアイデアは、各目の虹彩を別々の画像にしてから、色を変換することです。

あなたは何をお勧めします?

4

2 に答える 2

4

コードでの画像マスキングをお勧めします。

目の画像用と虹彩の色用の 2 つのレイヤーを設定し、ユーザーが選択範囲をタップしたときに各色を生成できます。

UIImage でトリックを実行する必要があるマスキング コードの簡単な例を次に示します。

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
        CGImageGetHeight(maskRef),
        CGImageGetBitsPerComponent(maskRef),
        CGImageGetBitsPerPixel(maskRef),
        CGImageGetBytesPerRow(maskRef),
        CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
    return [UIImage imageWithCGImage:masked];

}

( http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.htmlから取得)

毎回コードを実行する必要がありますが、画像がかなり小さいため問題にはなりません。パフォーマンスを向上させたい場合は、結果をキャッシュするための便利なヘルパーを作成できます。

于 2012-06-04T10:10:20.990 に答える
0

私はそれをテストし、それは動作します。この投稿をさらに包括的にするために、これが私の実験結果です。

ベースイメージ:

ベース画像


マスク画像:

マスク画像


結果画像:

結果画像

(透明度を表示するために、チェッカーの背景の上に)

于 2012-06-18T10:23:54.217 に答える