Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 28.04.2017
Сообщений: 3
1

Динамическое рисование пиксельной графики

28.04.2017, 15:38. Показов 5951. Ответов 3

Author24 — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане.
Задача такова: открыть изображение и мышкой нарисовать на нем прямоугольник c возможностью удаления, манипуляции с координатами для вывода/ввода в XML/JSON.
Tkinter умеет работать только с изображениями в формате GIF.
PIL не умеет рисовать мышью и в нем нет нужных виджетов (button, label ect.)
PyGame все таки больше ориентирован на разработку игр и динамической графики, а меня интересуют исключительно геометрические примитивы.
Безусловно есть вероятность что я заблуждаюсь в выше написанном но в сети солюшен я не обнаружил.
Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2017, 15:38
Ответы с готовыми решениями:

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

Рисование графики
задача: программно рисовать чертежи как на картинках. Требования: зумирование (масштабирование),...

Рисование простой графики
расскажите как рисовать простенькую графику в С# (visual studio). я нуб и не собираюсь рисовать...

Рисование произвольной графики
Надо нарисовать простейшую кнопочку на форме через класс Graphics, но получается хрень... private...

3
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
28.04.2017, 16:50 2
PIL - это просто библиотека для работы с изображениями (а не GUI), о чём говорит буковка I посередине.
С PyGame не работал, но там такое наверняка должно быть.

Можно взять PyQt, он крут.
0
0 / 0 / 0
Регистрация: 28.04.2017
Сообщений: 3
03.05.2017, 12:28  [ТС] 3
Решение найдено, к моему удивлению это Tk+PIL. Кому интересно вот код

Python
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
import Tkinter as tk
from PIL import Image, ImageTk
 
 
class ExampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.x = self.y = 0
        self.canvas = tk.Canvas(self, width=512, height=512, cursor="cross")
        self.canvas.pack(side="top", fill="both", expand=True)
        self.canvas.bind("<ButtonPress-1>", self.on_button_press)
        self.canvas.bind("<B1-Motion>", self.on_move_press)
        self.canvas.bind("<ButtonRelease-1>", self.on_button_release)
 
        self.rect = None
 
        self.start_x = None
        self.start_y = None
 
        self._draw_image()
 
    def _draw_image(self):
        self.im = Image.open('1.jpg')
        self.tk_im = ImageTk.PhotoImage(self.im)
        self.canvas.create_image(0, 0, anchor="nw", image=self.tk_im)
 
    def on_button_press(self, event):
        # save mouse drag start position
        self.start_x = event.x
        self.start_y = event.y
 
        #one rectangle
        if not self.rect:
            self.rect = self.canvas.create_rectangle(self.x, self.y, 1, 1, )
 
    def on_move_press(self, event):
        curX, curY = (event.x, event.y)
 
        # expand rectangle as you drag the mouse
        self.canvas.coords(self.rect, self.start_x, self.start_y, curX, curY)
 
    def on_button_release(self, event):
        pass
 
 
if __name__ == "__main__":
    app = ExampleApp()
    app.mainloop()
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
03.05.2017, 12:44 4
Похвально, на я всё-таки рекомендую PyQt. Он реально крут, а Tk - маленький и убогий, единственное его достоинство в том, что встроен.
0
03.05.2017, 12:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2017, 12:44
Помогаю со студенческими работами здесь

Рисование растровой графики
1. Построить отрезок попиксельно по его начальной и конечной координатами. Алгоритм линий (алгоритм...

Графики функций и рисование
Есть задание: (Напишите приложение, которое строит ряд увеличивающихся окружностей, центры...

Динамическое рисование эллипса
Пытаюсь сделать динемическое рисование элипса но при движение мышью предыдущие элипсы не...

Динамическое рисование в MSChart на C#
Уважаемые форумчане, гуру программинга. Прошу Вас помочь разобраться с одним дельцем: Хочу...

Рисование графики в окне (MFC)
Здравствуйте! В диалоговом приложении открываю дочернее окно, где рисую поля и на них графики....

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru