Закругленные углы на изображениях с использованием Java и JAI - PullRequest
1 голос
/ 01 декабря 2009

Мы используем JAI (https://jai -imageio.dev.java.net / ) для масштабирования и обрезки изображений в Java. Мы хотели бы создать закругления углов на наших изображениях. Как мы это делаем?

Изображения в формате JPG и PNG. Я думаю, что проще сделать это с JPG?

Изображение представляет собой плоское изображение из JAI

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

, который можно преобразовать в объект java.awt.Graphics

Кто-нибудь делал это раньше?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2009

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);
}

Метод Float () класса RoundRectangle2D принимает шесть аргументов:

  • Первые два представляют местоположение левого верхнего угла.
  • Аргументы 3 и 4 представляют ширину и высоту скругленного прямоугольника.
  • Последние два аргумента представляют ширину и высоту дуги, нарисованной в углы.

Итак, нарисуйте прямоугольник со скругленными углами, который будет содержать изображение, которое вы хотите, чтобы у него были закругленные углы, а затем либо наложите, либо используйте маску для получения желаемого эффекта.

0 голосов
/ 01 декабря 2009

Что мешает вам рисовать любые углы, которые вам нравятся, на объекте Graphics, полученном из изображения? Я не совсем уверен, как должны выглядеть ваши «круглые углы», но вы можете выполнить все разумные операции рисования над объектом Graphics.

...