私は、既存のビットマップを取り出し、その中央を削除して「切り取った」バージョンを作成することで、アンドロイドで画像を動的に作成しようとしています。結果として得られる画像の高さは当然のことながら、添付の例のようにオリジナルよりも小さくなります。ビットマップの中央領域を切り出してAndroidで縮小する
私はオリジナルから2つの新しいビットマップを作成します.1つは、クロップセクションの上に画像の上部を含むもの(例ではアンドロイドの頭部)と残りの画像Bitmap.createBitmap(source, x, y, width, height)
メソッドを使用してクロップセクション(アンドロイドの足)の下に、これらのビットマップの両方を、元のイメージから削除されたスペースを引いたサイズのキャンバスに描画します。
これはちょっと大変だと思います。このメソッドを何回か呼び出すことができるように、毎回2つのビットマップを作成するのは無駄です。
これを行うより効率的な方法があるのだろうかと思っていました。元のビットマップをキャンバスに描きたいのですが、パスを使ってペイントのxfermodeを new PorterDuffXfermode(Mode.DST_OUT)
に設定して、削除したい部分の画像を切り取ってください。しかし、これはその領域を明らかにし、画像を縮小しない、つまりAndroidの真ん中に大きな空白を残すように見える。
大変ありがとうございます。
1つのビットマップを作成するだけで、画像の中央を削除するにはどうすればよいですか? 答えをコードで説明できますか? – luuts
要求ごとにコードが追加されました。 –
ああ、それほど大したことは考えていませんでした。乾杯! – luuts