Как я могу отредактировать изображение jpg через Java?

Объявить эти DataReader в блоке public partial class Form1 : Form Пример:

namespace GoodFood_1_
{
    public partial class Autentificare_client : Form
   {
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\edi_b\Documents\visual studio 2013\Projects\GoodFood(1)\GoodFood(1)\GOOD_FOOD.mdf;
        Integrated Security=True;MultipleActiveResultSets=True");
        SqlConnection con2 = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\edi_b\documents\visual studio 2013\Projects\GoodFood(1)\GoodFood(1)\GOOD_FOOD.mdf;
        Integrated Security=True;MultipleActiveResultSets=True");

        SqlDataReader dr;
        SqlDataReader cc;

        public Autentificare_client()
        {
            InitializeComponent();
        }
13
задан andandandand 17 June 2009 в 21:29
поделиться

5 ответов

Чистый способ Java - использовать ImageIO для загрузки изображения как BufferedImage . Затем вы можете вызвать createGraphics () , чтобы получить объект Graphics2D ; затем вы можете нарисовать на изображении все, что захотите.

Вы можете использовать ImageIcon , встроенный в JLabel , чтобы отображать его, и вы можете добавить MouseListener и / или MouseMotionListener в JLabel , если вы пытаетесь разрешить пользователю редактировать изображение.

17
ответ дан 1 December 2019 в 19:15
поделиться

Я использовал Java Библиотека расширенной обработки изображений ( http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html ), но вы также можете посмотреть ImageJ ( http: // rsbweb.nih.gov/ij/index.html

2
ответ дан 1 December 2019 в 19:15
поделиться

Управление изображениями в Java может быть достигнуто с помощью контекстов Graphics или Graphics2D .

Может выполняться загрузка изображений, таких как JPEG и PNG с помощью класса ImageIO . Метод ImageIO.read принимает файл для чтения и возвращает BufferedImage , который можно использовать для управления изображением через его Graphics2D (или Graphics , его суперкласс).

Контекст Graphics2D может использоваться для выполнения многих задач рисования и обработки изображений. Информацию и примеры можно найти в Следе: 2D-графика из Учебники по Java .

Ниже приведен упрощенный пример (непроверенный), который открывает файл JPEG , и нарисуйте круги и линии (исключения игнорируются):

// Open a JPEG file, load into a BufferedImage.
BufferedImage img = ImageIO.read(new File("image.jpg"));

// Obtain the Graphics2D context associated with the BufferedImage.
Graphics2D g = img.createGraphics();

// Draw on the BufferedImage via the graphics context.
int x = 10;
int y = 10;
int width = 10;
int height = 10;
g.drawOval(x, y, width, height);

g.drawLine(0, 0, 50, 50);

// Clean up -- dispose the graphics context that was created.
g.dispose();

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

Для Например, создав ImageIcon с помощью BufferedImage , можно встроить изображение в JButton или JLabel :

JLabel l = new JLabel("Label with image", new ImageIcon(img));
JButton b = new JButton("Button with image", new ImageIcon(img));

JLabel и JButton оба имеют конструкторы, которые принимают ImageIcon , так что это может быть простой способ добавить изображение в компонент Swing.

12
ответ дан 1 December 2019 в 19:15
поделиться

Используйте для этого библиотеку. Вы можете попробовать JMagick .

5
ответ дан 1 December 2019 в 19:15
поделиться

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

Что-то вроде:

new ImageIcon("someUrl.png"){
    public void paintIcon(Component c, Graphics g, int x, int y) {
        super(c, g, x, y);
        g.translate(x, y);

        g.drawOval(0, 0, 10, 10);
        ...

        g.translate(-x, -y);
    }
};

Сказав это, ответ mmyers намного лучше, если вы хотите изменить данные изображения.

1
ответ дан 1 December 2019 в 19:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: