[Tutor PyCZ] Nahrani obrazku 8 //
geon
geon na post.cz
Středa Srpen 31 14:28:54 CEST 2005
STA napsal(a):
> Ahoj tak jsem si stahnul modul pygame, ale porad enchapu nahrani
> obrazku ze souboru. Poradi mi nekdo jak ho jednoduse nahrat?
> Dekuji za pripadne odpovedi ; /
Doporučuji plně projít jeden až dva tutoriály čistě ohledně jazyka. Na
webu www.py.cz je jich spousty. Myslím že není ani tak důležité, abys
uměl natáhnout obrázek, ale abys věděl, co děláš. Proč je tam zrovna to
a ne ono. Rozhodně bys měl umět "funkce" a "třídy". Bez nich se dál
nedostaneš ;-).
Pokud ti jde skutečně jen o natažení obrázku, jednodušeji je to
vysvětlováno v "Posuň to" než v "Opička...". Nicméně i zde jsou třebas
"funkce" a "třídy". Pokud se jím nebudeš chtít prokousávat řádku po
řáídku, je možné, že nepochopíš spousty ze základů jazyka i pygame.
Takže to co hledáš, je
hrdina = pygame.image.load('hrdina.jpg')
Jen připomínám, ať si dáš pozor na cesty, obrázek by měl ležet ve
stejném adresáři nebo musí být s plnou cestou. Obrázek můžeš použít
jakýkolik, nebo si ho stáhnout ze stejné stránky tutoriálu.
Celý kod pro načtení obrázku. (bez "funkcí" a "tříd"! ) :-) :
# -*- coding: cp1250 -*-
# import a inicializace
import pygame, sys
from pygame.locals import *
pygame.init()
# nastavení konstant
REZIM=(640, 480)
umisteniObrazku=(0,0)
obrazovka = pygame.display.set_mode(REZIM)
hrdina = pygame.image.load('hrdina.jpg') #načtení obrázku
obrazovka.blit(hrdina, umisteniObrazku) # vykreselení na obrazovkku
pokracovat=1
while pokracovat: # téměř do nekonečna
for udalost in pygame.event.get(): # o tomto více v tutoriálu
if udalost.type ==QUIT: # ošetření Alt+F4
pokracovat=0
pygame.display.update() # aktualizace obrazovky
pygame.time.delay(100) # cekej
pygame.quit()
print "Ted jsi zavrel okno. A to je vse :-)"
Není to moc jednoduché, co? V jiných GUI jde pouhé načtení obrázku
daleko jednodušeji. Pygame ale je herní modul, takže následně je zase
lehčí ovládat pohyb obrázku a případné střílení (kolize s jinými
obrázky),....
Pro názornost přikádám jak by to bylo v Tkinteru.
import Tkinter
root=Tkinter.Tk()
platno=Tkinter.Canvas()
platno.pack()
obrazek = Tkinter.PhotoImage(file="hrdina.gif")
polozka = platno.create_image(100, 100, image=obrazek)
root.mainloop()
Vsimni si, ze jsem predelal jpg na gif, protoze Tkinter bohuzel sám o
sobě nepodporuje jpg. Vestavěnou podporu ma pro gif a pgm. Pokud chceš
používat i jiné formáty, potřebuje modul PIL (Image) (nutno stáhnout),
což je mimochodem skvělá knihovna na práci s obrázky (převod mezi
formáty a úprava obrázku - třebas u všech obrázků ve složce změníš
rozměry nebo hloubku ...). Použití s Tkinterem pak vypadá takto:
#---------------jpg-------------------------------------
import Tkinter, Image, ImageTk
root=Tkinter.Tk()
platno=Tkinter.Canvas()
platno.pack()
obrazekRaw = Image.open("hrdina.jpg")
obrazek = ImageTk.PhotoImage(obrazekRaw)
polozka = platno.create_image(100, 100, image=obrazek)
root.mainloop()
Hezké počtení, nedávám k příkladům žádný komnetář. Kdyby něco nebylo
jasné nebo nefugovalo, tak se ptej :-)
geon
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/tutor/attachments/20050831/f6a5f17f/attachment.htm
Další informace o konferenci Tutor