Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1192 / 761 / 128
Регистрация: 10.03.2012
Сообщений: 4,922

Работа с изображениями

19.08.2022, 17:12. Показов 829. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо реализовать метод, который получает из базы id и имена изображений. Полученный список будет отображаться на форме и пользователь сможет выбирать изображение для просмотра.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2022, 17:12
Ответы с готовыми решениями:

Работа с изображениями
Доброго времени суток! Пишу небольшой вьювер графики. Хотелось бы реализовать поддержку нескольких форматов, помимо тех что java...

Работа с изображениями
Я создал объект изображения, вывел изображение на экран. Как переместить это изображение на заданные координаты. Я думал что есть метод...

Работа с изображениями
Чтобы программа увидела изображение, достаточно положить рисунок в директорию пакета класса?

5
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
19.08.2022, 17:29
какой вопрос?
0
49 / 39 / 11
Регистрация: 24.07.2022
Сообщений: 117
20.08.2022, 01:24
Цитата Сообщение от Whitecolor Посмотреть сообщение
получает из базы id и имена изображений
Какая СУБД? Как выглядит бд?

Цитата Сообщение от Whitecolor Посмотреть сообщение
список будет отображаться на форме и пользователь сможет выбирать изображение для просмотра
Одного имени изображения мало, надо само изображение
0
1192 / 761 / 128
Регистрация: 10.03.2012
Сообщений: 4,922
20.08.2022, 14:56  [ТС]
Цитата Сообщение от dmiteri Посмотреть сообщение
Какая СУБД?
MySQL
Цитата Сообщение от dmiteri Посмотреть сообщение
надо само изображение
Почему?
0
49 / 39 / 11
Регистрация: 24.07.2022
Сообщений: 117
22.08.2022, 19:57
Цитата Сообщение от Whitecolor Посмотреть сообщение
Почему?
Так его надо показать пользователю
0
1192 / 761 / 128
Регистрация: 10.03.2012
Сообщений: 4,922
04.10.2022, 13:20  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package javaapplication10;
 
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
 
public class MyImage extends JComponent {
   private Image         image;
   private BufferedImage buf;
    
   public void setImage(InputStream in){
     try{  
        buf=ImageIO.read(in); 
        if (buf!=null)  repaint();
     }  
     catch(IOException ex){ System.out.println(ex.getMessage()); }
   }
   
   @Override
   protected void paintComponent(Graphics g) {
        if (buf!=null) {
            double k=(double)getWidth()/buf.getWidth();
            int h=(int)(buf.getHeight()*k);
            image=buf.getScaledInstance(getWidth(),h,Image.SCALE_FAST);
            
            if (image!=null) {
                Graphics2D g2=(Graphics2D) g;
                g2.drawImage(image, 0, 0, null);
            }
        }
        else g.drawString("No Picture!!!", 20, 20);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package javaapplication10;
 
import java.io.*;
import java.sql.*;
import java.util.ArrayList;
 
//  Create Table dbo.pictures(
//  id    int   NOT NULL,
//  photo image NOT NULL,
//  name  nvarchar(50) NULL,
//  Constraint PK_pictures primary key clustered (id ASC) )
 
public class MySQL {
    static String url;
    static{
         url="jdbc:mysql://localhost:3306/?user=root&password=root";
         try{
            Class.forName("com.microsoft.sqlserver.jdbc.Driver");
         }catch(ClassNotFoundException ex) { 
             System.err.println(ex.getMessage()); }
    }
    
    
    public static void putPhoto(String name, String path){
       try(Connection con=DriverManager.getConnection(url)){
           
         File file=new File(path); 
         if (!file.exists()) return;
         int  size=(int)file.length();
         
         BufferedInputStream fis=new BufferedInputStream(
                                new FileInputStream(file));
         
         String sql="Insert into dbopictures (name,photo) Values(?,?)";
         PreparedStatement pst=con.prepareStatement(sql);
         pst.setString(1, name);
         pst.setBinaryStream(2, fis, size);
         pst.executeUpdate();
       }
       catch(SQLException | IOException ex) { 
           System.err.println(ex.getMessage()); } 
    }
    public static String[] getPhotos() {
        ArrayList<String> list=null;
        
        try(Connection con=DriverManager.
                        getConnection(url)){
    
            String sql="Select id,name from dbopictures";
            Statement st=con.createStatement();
            ResultSet rs=st.executeQuery(sql);
            
            list=new ArrayList<>();
            while(rs.next())
               list.add(rs.getString(1)+" "+rs.getString(2));
        }
        catch(SQLException ex) { System.err.println(ex.getMessage()); }
        
        return list.toArray(new String[]{});
    }
    public static InputStream getPhoto(int id){
        InputStream in=null;
        
        try(Connection con=DriverManager.
                        getConnection(url)){
    
            String sql="Select photo from dbopictures where id=?";
            PreparedStatement pst=con.prepareStatement(sql);
            pst.setInt(1, id);
            ResultSet rs=pst.executeQuery();
            rs.next();
            in=rs.getBinaryStream(1); 
        }
        catch(SQLException ex) { System.err.println(ex.getMessage()); } 
        
        return in; 
    }
}
Добавлено через 10 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package javaapplication10;
 
import java.io.FileInputStream;
import java.io.IOException;
import java.util.StringTokenizer;
import javax.swing.AbstractListModel;
 
public class NewJFrame extends javax.swing.JFrame {
 
    /**
     * Creates new form NewJFrame
     */
    public NewJFrame() {
        initComponents();
            jList1.setModel(new AbstractListModel() {
            String []d=MySQL.getPhotos();
            public int getSize() {return d.length;}
            public Object getElementAt(int i) {return d[i]; }
        });
    }
 
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
 
        jSplitPane1 = new javax.swing.JSplitPane();
        jSplitPane2 = new javax.swing.JSplitPane();
        myImage1 = new javaapplication10.MyImage();
        jScrollPane1 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
        javax.swing.GroupLayout myImage1Layout = new javax.swing.GroupLayout(myImage1);
        myImage1.setLayout(myImage1Layout);
        myImage1Layout.setHorizontalGroup(
            myImage1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 468, Short.MAX_VALUE)
        );
        myImage1Layout.setVerticalGroup(
            myImage1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 392, Short.MAX_VALUE)
        );
 
        jSplitPane2.setRightComponent(myImage1);
 
        jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jList1ValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(jList1);
 
        jSplitPane2.setLeftComponent(jScrollPane1);
 
        getContentPane().add(jSplitPane2, java.awt.BorderLayout.CENTER);
 
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-518)/2, (screenSize.height-428)/2, 518, 428);
    }// </editor-fold>                        
 
    private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {                                    
        // TODO add your handling code here:
        if (evt.getValueIsAdjusting()) {
            String element=jList1.getSelectedValue().toString();
            StringTokenizer st=new StringTokenizer(element);
            int id = Integer.parseInt(st.nextToken());
 
            myImage1.setImage(MySQL.getPhoto(id));
        }
    }                                   
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
 
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
 
        java.awt.EventQueue.invokeLater(new Runnable() {
 
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JList jList1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JSplitPane jSplitPane2;
    private javaapplication10.MyImage myImage1;
    // End of variables declaration                   
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2022, 13:20
Помогаю со студенческими работами здесь

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

Работа с изображениями в java
Я пишу программу на java для распознавания текста с изображения. Поскольку я не имею много опыта в java, мне достаточно трудно это...

Java работа с изображениями
Здравствуйте! Пытаюсь переехать на Java, но не могу осилить работу с изображениями(это выше моего понимания). Задача: Есть исходное...

Работа с изображениями
Добрый день! Есть тут знающие как работать с изображениями (Масштабировать, скопировать/вставить, обрезать). А то что-то не могу ни как...

Работа с изображениями!
Вопрос такой: как можно повернуть картинку в матлабе(на углы 90,180,270 например) если не использовать стандартные функции(rotate и тд)??? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru