1

ビットマップの色で領域を選択する効率的な方法を提案してください。次に、この選択した領域の色を目的の色に置き換えます。

たとえば、画像に赤、緑、黄、オレンジの 4 色が含まれている場合。ここで、ユーザーが黄色をクリックしたとします。クリックした位置を囲む黄色の領域を選択し、黄色を青色に置き換えます。

希望、私は質問を適切に説明しました。さらに明確にする必要がある場合は、コメントしてください。

私の知る限り、ビットマップはメモリを消費するタスクであり、メモリ不足エラーが発生します。

この機能をアプリに実装するのに役立つリンクまたはサンプル コードを共有してください。

4

3 に答える 3

0

Palette API の使用についてはどうですか?

于 2015-11-02T20:39:49.417 に答える
0

多くの時間を費やした後、この作業を行うための便利なリンクを取得しました。これは Kids Palette と呼ばれ、GitHub でソースのリンクを共有しています

于 2015-11-02T20:33:30.567 に答える
0

すべてのピクセルの色を取得したい場合は、次のようにします。

for(int i=0;i<bitmap.getWidth();i++){
for(int j=0;j<bitmap.getHeigth();j++){
    int pixel = bitmap.getPixel(i,j);
    if(pixel == Color.RED){
        //Do something
    }
}
}

したがって、最初にユーザーがタップしたピクセルの色を見つけてから、上記の手法を使用してその特定の色のピクセルを見つけることができます。

以下を使用して、タップされたピクセルのカラー コードを取得できます。

int ColorCode = imageView.getDrawingCache().getPixel(x, y);

ここで x,y は座標です。追加情報については、このリンクを参照できます -リンク

問題を防ぐために、メモリにロードする前にビットマップを縮小することを忘れないでくださいOutOfMemory。その方法については、Android のドキュメントを参照してください。大きなビットマップの処理

于 2015-10-31T14:49:16.650 に答える