Я заметил, что при попытке нарисовать квадрат с черной рамкой для графики BufferedImage он работает нормально, если он создается как TYPE_INT_RGB, но деформируется, если BufferedImage был создан как TYPE_INT_ARGB, по-видимому, только помещая границу слева и сверху. квадрат.
Код: Выделить всё
icon = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = icon.createGraphics();
g.setColor(Color.yellow);
g.fillRect(0, 0, (int) this.width-1, (int) this.height-1);
g.setColor(Color.BLACK);
g.drawRect(0, 0, (int) this.width, (int) this.height);
g.dispose();
Если вы попробуете и избавитесь от буквы A в TYPE_INT_ARGB, вы поймете, что я имею в виду. С квадратами проблем нет, но проблема возникает, когда я рисую круги. На самом деле, похоже, что содержимое протягивается дальше вниз и влево, чем TYPE_INT_RGB.
[img]https: //i.sstatic.net/Da9jcO54.png[/img]
Подробнее здесь:
https://stackoverflow.com/questions/791 ... ifferently