Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2012 07:21:17

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Вывод картинки на канвасе

здравствуйте

1. есть изображение. размером 1280х720, есть канвас с размером 360х640. хочу вывести на канвас часть этой картинки - 920,0,1280,640. подскажите как это делать.

2. пока пробую просто вывести картинку на канвасе. но что-то не получается.

import Tkinter, Image
main_window=Tkinter.Tk()
canvas=Tkinter.Canvas(main_window, height=640, width=360, bg="lightblue")
canvas.pack()
a=Image.open('c:\splash.jpg')
canvas.create_image(0,0,image=a)
main_window.mainloop()
но вылазит ошибка
>>>

Traceback (most recent call last):
File “D:\Ильнур\Мои документы\Desktop\PCcanvas.py”, line 8, in <module>
canvas.create_image(0,0,image=a)
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 2198, in create_image
return self._create('image', args, kw)
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 2189, in _create
*(args + self._options(cnf, kw))))
TclError: image “<JpegImagePlugin.JpegImageFile image mode=RGB size=360x487 at 0x2D20D78>” doesn't exist
>>>
чего не хватает у меня в коде

в системе вроде этот файл никем не открыт

Отредактировано ilnur (Апрель 6, 2012 07:39:22)

Офлайн

#2 Апрель 6, 2012 07:55:12

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Вывод картинки на канвасе

вроде получилось. правильно ли я сделал
по первому вопросу

canvas.create_image(-100,-200,image=a,anchor="nw")
по второму вопросу
import Tkinter, ImageTk, Image
main_window=Tkinter.Tk()
canvas=Tkinter.Canvas(main_window, height=640, width=360, bg="lightblue")
b=Image.open('c:\\splash.jpg')
a=ImageTk.PhotoImage(b)
canvas.create_image(0,0,image=a,anchor="nw")
canvas.pack()
main_window.mainloop()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version