1

JAI ( https://jai-imageio.dev.java.net/ ) を使用して、Java で画像をスケーリングおよびトリミングしています。画像に丸い角を作成したいと思います。どうやってそれを行うのですか?

画像はJPGとPNGです。JPGでこれを行う方が簡単だと思いますか?

画像は JAI の PlanarImage です

PlanarImage src = JAI.create(...,...);

これは java.awt.Graphics オブジェクトに変換できます

誰もこれを以前にやったことがありますか?

4

2 に答える 2

2

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 つの引数は、角に描かれた円弧の幅と高さを表します。

したがって、角を丸くしたい画像だけを含む角の丸い長方形を描画し、オーバーレイまたはマスクを使用して目的の効果を得ます。

于 2009-12-01T17:18:11.827 に答える
0

Image から取得した Graphics オブジェクトに好きな角を描画できない理由は何ですか? 「丸い角」がどのように見えるかはよくわかりませんが、Graphics オブジェクトに対して適切なすべての描画操作を実行できます。

于 2009-12-01T16:34:30.260 に答える