画像内の空の領域(そのxy座標)を見つけたい。そこから、その空の領域に別の画像を入力する必要があります。
2 に答える
空の領域とは、白い四角形を意味しますか?
私がこれを行う方法は、ピクセルごとにピクセル (x 軸/y 軸) を実行して完全に白いピクセルを検索し、このピクセルを見つけたら、そのピクセルから開始して検証するメソッドを実行することです。そこに挿入したい画像の幅と高さの量で、X軸とY軸の直線に沿ったピクセル。これらの 2 行がすべて白の場合は、対角線上でもう一度実行します。長さmath.sqrt(width*width + height*height)
はその対角線。
ただし、白いピクセルを検索する代わりに、完全に透明なピクセル (0 アルファ) を検索したいと思います。それはあなたの画像ではうまくいくと思いますが、尾で結合された正確な長さで白い3本の線を持つ別の画像がある場合は失敗します。ただしないでください...そうしないでください。
これらの線だけをチェックする代わりに、実際にその四角形のすべてのピクセルを確認できますが、空の領域の下部にたまたま標高があるため、おそらく遅くなり、画像では機能しません。
画像内の白い点を見つけたい場合は、以下を試してください。お役に立てば幸いですが、空の領域だけでなく、画像内のすべての白い点が返されます。
Bitmap mBitmap = YOUR BITMAP;
ArrayList<Point> whitePoint = new ArrayList<Point>();
for (int i = 0; i < mBitmap.getWidth(); i++) {
for (int j = 0; j < mBitmap.getHeight(); j++) {
if(mBitmap.getPixel(i, j) == Color.WHITE)
{
whitePoint.add(new Point(i, j));
}
}
}
空の領域に透明色を使用し、白の代わりに透明色をチェックすることをお勧めします