JavaとJAIを使用した画像の角丸
-
22-07-2019 - |
質問
JAIを使用しています( https://jai-imageio.dev.java.net/ )Javaで画像を拡大縮小してトリミングします。画像に丸い角を作成したいと思います。どうすればいいですか?
画像はJPGおよびPNGです。 JPGでこれを行う方が簡単だと思いますか?
画像はJAIのPlanarImageです
PlanarImage src = JAI.create(...,...);
java.awt.Graphicsオブジェクトに変換できます
以前にこれをやったことがありますか?
解決
PNGは透明なアルファチャネルをサポートしますが、JPGはサポートしません。そのため、JPGの場合は、「不可視」をペイントする色も選択する必要があります。角の丸い長方形の一部。
これを行うために使用できるクラス java.awt.geom.RoundRectangle2D
があります:
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
RoundRectangle2D rr = new RoundRectangle2D.Float(50, 50, 200, 100, 10, 10);
g2d.draw(rr);
}
クラスRoundRectangle2DのFloat()メソッドは、6つの引数を取ります:
- 最初の2つは、左上隅の位置を表します。
- 引数3および4は、角丸長方形の幅と高さを表します。
- 最後の2つの引数は、描画される弧の幅と高さを表します コーナー。
そのため、角を丸くしたい画像のみを含む角丸長方形を描画し、オーバーレイするかマスクを使用して目的の効果を得ます。
他のヒント
画像から取得したGraphicsオブジェクトに好きなコーナーを描画できないのはなぜですか?あなたの「ラウンドコーナー」が何なのかよくわかりません。のように見えるはずですが、Graphicsオブジェクトですべての妥当なペイント操作を実行できます。
所属していません StackOverflow