Tkinter/ImageTk - Chyba – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Tkinter/ImageTk - Chyba – Python – Fórum – Programujte.comTkinter/ImageTk - Chyba – Python – Fórum – Programujte.com

 

Merlin0
Duch
8. 1. 2008   #1
-
0
-

Po dlhom čase som sa vrátil späť ku Pythonu a pozeral geonove lekcie.
Skončil som na 24..
Po nainštaloval python-imaging (PIL), mi v ňom chýbal ImageTk, tak som ho tam doplnil zo stiahnutej verzie.
Import prebehol úspešne no pri pokuse ImageTk.PhotoImage(obr) dostanem:

/usr/lib/python2.5/site-packages/PIL/Image.py:1268: DeprecationWarning: integer argument expected, got float

im = self.im.resize(size, resample)
Traceback (most recent call last):
File "/home/ikarus2/Dokumenty/Python/Tk_obrazkovac.py", line 42, in <module>
zobrazObrazok(cesta)
File "/home/ikarus2/Dokumenty/Python/Tk_obrazkovac.py", line 22, in zobrazObrazok
photo = ImageTk.PhotoImage(obr)
File "/usr/lib/python2.5/site-packages/PIL/ImageTk.py", line 113, in __init__
self.__photo = apply(Tkinter.PhotoImage, (), kw)
File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 3273, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 3214, in __init__
raise RuntimeError, 'Too early to create image'
RuntimeError: Too early to create image
Exception exceptions.AttributeError: "PhotoImage instance has no attribute '_PhotoImage__photo'" in <bound method PhotoImage.__del__ of <PIL.ImageTk.PhotoImage instance at 0xb706a92c>> ignored

Neviem v čom je chyba.. Skoro nekoro, malo by to fungovať.
Nevie niekto, ako to vyriešiť? Ďakujem.

Nahlásit jako SPAM
IP: 78.98.16.–
Python, GML, C++, Pascal..... ???
geon0
Grafoman
8. 1. 2008   #2
-
0
-

No jestli není chyba v divné instalaci a v jiném chování linuxu, což by nemělo, musíš ukázat přesně ten kod, který způsobil tuto chybu.

Nahlásit jako SPAM
IP: 83.69.40.–
geon. volume doprava.
Merlin0
Duch
8. 1. 2008   #3
-
0
-

Inštaláciou asi nie, skúsim som preinštalovať aj python, aj Tk, aj PIL.. Popritom som objavil aj balíček python-imaging-tk, ktory tam sam to ImageTk doplnil, no aj tak to iste.
No teraz neviem, ktorý kód presne myslíte.

Nahlásit jako SPAM
IP: 78.98.16.–
Python, GML, C++, Pascal..... ???
geon0
Grafoman
8. 1. 2008   #4
-
0
-

no tvuj kod, tvuj program, který tuto chybu zpusobil ;-)

Nahlásit jako SPAM
IP: 83.69.40.–
geon. volume doprava.
Merlin0
Duch
8. 1. 2008   #5
-
0
-

# -*- coding: utf-8 -*-

from Tkinter import *
import os, sys
from PIL import Image, ImageTk

class Kontajner():
pass

trash = Kontajner()
trash.sirka = 640
trash.vyska = 480
def zmenVelkost(obrazok):
sirka, vyska = obrazok.size
pomer = float(sirka)/trash.sirka
sirka = sirka*pomer
vyska = vyska*pomer
obrazok = obrazok.resize((sirka, vyska))
return obrazok
def zobrazObrazok(obrazok):
obr = Image.open(obrazok)
obr = zmenVelkost(obr)
photo = ImageTk.PhotoImage(obr)
trash.cns_platno.create_image(trash.sirka/2,trash.vyska/2,image=photo)
trash.obr = photo
def vykresliOkno():
root = Tk()

trash.cns_platno = Canvas(root, width=trash.sirka, height=trash.vyska) # cns ako Canvas
trash.cns_platno.pack(fill=BOTH, expand=1)

trash.ent_entry = Entry(root)
trash.ent_entry.pack(fill=X, side=LEFT, expand=1)

trash.btn_button1 = Button(root, text=u"Predchádzajúci")
trash.btn_button2 = Button(root, text=u"Ďalej")
trash.btn_button1.pack(side=LEFT)
trash.btn_button2.pack(side=LEFT)

root.mainloop()

cesta = "/home/ikarus2/Obrázky/wredirect.jpg"
zobrazObrazok(cesta)
print cesta
print "huuu"
vykresliOkno()

V tych pomeroch to este nemam doriesene, lebo sa mi nechcelo.. Ale aj bez funkcie zmen velkost to nejde.

Nahlásit jako SPAM
IP: 78.98.16.–
Python, GML, C++, Pascal..... ???
geon0
Grafoman
8. 1. 2008   #6
-
0
-

VykresliOkno() musí být před zobrazObrazok(), a mainloop() musí být až na samém konci prg ....

Nahlásit jako SPAM
IP: 83.69.40.–
geon. volume doprava.
Merlin0
Duch
9. 1. 2008   #7
-
0
-

Takže moja chyba. Niekedy sa stačí len trochu pozrieť a problém je vyriešený.
Ďakujem za radu. :)

Nahlásit jako SPAM
IP: 78.98.98.–
Python, GML, C++, Pascal..... ???
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 30 hostů

Podobná vlákna

Tkinter — založil Adam

Tkinter a get() — založil Eidam655

While v tkinter — založil Spectator

Tkinter/had — založil selkir

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý