Есть ли библиотека Java для написания программы для рисования? - PullRequest
12 голосов
/ 28 марта 2011

Мне нужно написать простое Java-приложение с графическим интерфейсом, которое, в принципе, позволяет пользователю отмечать области на изображении легкого КТ.

Чтобы упростить процесс маркировки, важно, чтобы в программе были предусмотрены некоторые базовые инструменты / функции, аналогичные программе для рисования, такие как MS Paint, например, отменить / повторить, ширину маркера (кисти) и заполнение области.

Есть ли какая-либо библиотека Java, которая предоставляет компоненты для написания программы для рисования?

Ответы [ 4 ]

10 голосов
/ 02 мая 2011

Я предлагаю вам взглянуть на ImageJ . Большим плюсом является его корень в медицинской сфере, и его можно расширить с помощью пользовательского плагина. Следующие части взяты из ImageJ Wikipedia entry.

ImageJ является общественным достоянием на основе Java Программа обработки изображений, разработанная в Национальные институты здоровья. ImageJ был разработан с открытым архитектура, которая обеспечивает расширяемость с помощью плагинов Java и записываемые макросы.

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

Пользовательские плагины делают возможным решить много обработки изображений и проблемы анализа, от трехмерная живая клетка визуализация, радиологическое изображение обработка, система множественной визуализации Сравнение данных с автоматизированным гематологические системы.

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

Если вы хотите избежать вышеуказанной проблемы, взгляните на @ Zack's answer. В дополнение к этому взгляните на эти:

  1. заливка с использованием стека
  2. Добавьте функцию отмены / возврата в приложения Java с помощью Swing
  3. Примеры Java 2D - Java2s
7 голосов
/ 05 мая 2011

Обработка позволяет рисовать фигуры, устанавливать толщину линий и цвета, отображать изображения и выполнять многие другие функции рисования в Java.Его можно использовать как библиотеку Java и интегрировать в приложение Swing.

Вот пример кода обработки:

void setup() {
  size(400, 400);  // set window size to 400 x 400 pixels
  PImage lungImg = loadImage("http://i.stack.imgur.com/gwyp0.jpg");
  image(lungImg, 0, 0);
}

void draw() {
}

void mousePressed() {
  noFill();          // no fill color for the circle
  stroke(255, 0, 0); // set pen color to red
  strokeWeight(5);   // set line thickness to 5 pixels

  // draw ellipse at mouse position, 50 pixels height & width (i.e. a circle)
  ellipse(mouseX, mouseY, 50, 50); 
}

Он будет выполняться самостоятельно в IDE обработки, которыйдобавляет немного синтаксического сахара.Это «настоящая» Java под ней;методы в приведенном выше коде можно найти в классе PApplet .

Нажатие помечает красный кружок.Вот результирующее приложение:

enter image description here

2 голосов
/ 28 марта 2011

Если вы хотите создать настольное приложение, вы, вероятно, будете использовать Swing.

В частности, для рисования на холсте см. Java 2D API .

Отмена / повтор может быть обработана с помощью шаблона проектирования команд .

1 голос
/ 05 мая 2011

Проверьте gef и возьмите 2d из затмения. Draw2D предоставляет возможность визуализации графики поверх SWT. GEF предоставляет инфраструктуру MVC, а также инфраструктуру команд для отмены / повтора. Кривая обучения есть, но GEF действительно мощный.

...