質問

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オブジェクトですべての妥当なペイント操作を実行できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top