Sida 1 av 1
Skapa .jpg fil från Python
Postat: 18 jun 2007, 15:35
av Victor
Hejsan!
Jag vill utifrån en pythonfil generera en bild (.jpg), hur gör jag? Vilka verktyg (bibliotek) ska jag utnyttja? Exempel/länk? Jag vill egentligen inte skriva ut något på skärmen utan bara spara en bild på hårddisken som jag skapat med hjälp av rektanglar och andra diverse geometriska former.
Ska jag på något sätt uttnyttja:
Kod: Markera allt
>>> outFile= open('foo','w')
>>> outFile.write('... och i så fall hur ska jag skapa geometriska former?\n')
>>> outFile.close()
(Jag har sökt på internet men inte lyckats hitta något, men som alltid kan man missa saker så jag frågar här i forumet om någon vet)
Tacksam för snabba svar

SV: Skapa .jpg fil från Python
Postat: 18 jun 2007, 16:04
av Lars
Cairo ska ju vara väldigt bra för 2D-vektorgrafik sägs det,
http://cairographics.org/pycairo/, men jag har inte provat själv.
SV: Skapa .jpg fil från Python
Postat: 18 jun 2007, 16:34
av Victor
hmm.. ska kolla men jag kanske ska tillägga att jag inte kommer skriva i linux, utan i Solaris.. Jag tror dock inte Cairo är något för mig (?) men jag vet inte..
SV: Skapa .jpg fil från Python
Postat: 18 jun 2007, 16:45
av danno
SV: Skapa .jpg fil från Python
Postat: 18 jun 2007, 16:55
av Victor
Där fanns det mycket

, dock så behöver jag inte använda ett så komplext program och det känns som att det borde finnas enklare lösning.. Kan heller inte tanka det än för att kolla om det är något att ha. Är det någon som programmerat något i PythonMagick, och i så fall kan du ge ett exempel på hur mina operationer jag vill ha gjort, kan göras?

SV: Skapa .jpg fil från Python
Postat: 18 jun 2007, 16:58
av Smygis
http://www.pythonware.com/products/pil/
Kollade lite i dokumentationen och det såg riktigt lovande ut
SV: Skapa .jpg fil från Python
Postat: 19 jun 2007, 11:04
av Victor
Japp har kollat lite på det och som du sa så verkar det lovande. Dock så är jag urkass på dokumentationer då jag aldrig kommer fram till hur jag ska lyckas använda de bibliotek/funktioner som finns. Finns det någon vänlig själ som har lust att hjälpa mig förstå hur jag ska gå tillväga med hjälp av PIL?
SV: Skapa .jpg fil från Python
Postat: 19 jun 2007, 15:02
av Smygis
Victor skrev:
Japp har kollat lite på det och som du sa så verkar det lovande. Dock så är jag urkass på dokumentationer då jag aldrig kommer fram till hur jag ska lyckas använda de bibliotek/funktioner som finns. Finns det någon vänlig själ som har lust att hjälpa mig förstå hur jag ska gå tillväga med hjälp av PIL?
Satt och lekte lite med pil nu.
Kod: Markera allt
>>> from PIL import Image
>>> im = Image.open("whitefile.jpg") # en helt vit jpg bild. Så man har något att starta med
>>> im = im.resize((200,200))
>>> import ImageDraw
>>> draw = ImageDraw.Draw(im)
>>> draw.chord((10,10,190,190),10,100, fill=128)
>>> del draw
>>> im.save("hallo.jpg", "JPEG")
Gav mig följande bild:
SV: Skapa .jpg fil från Python
Postat: 19 jun 2007, 15:42
av Victor
titta där! tack så mycket! Nu har jag grunden.
Det jag gjorde fel var att jag hela tiden sökte ett sätt att skapa en bild, inte att öppna en bildfil och göra om
Ska se om jag själv lyckas luska ut hur man kan skapa en fil, om det inte redan är någon som sitter på den kunskapen?
EDIT: Jag får ett felmedelande (änvände koden som du hade skrivit):
pydev debugger
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
men filen ändras som den ska göra :S
EDIT2: Nu försvann medelandet.. En till fråga, varför och hur ändrar jag den dåliga upplösningen?
SV: Skapa .jpg fil från Python
Postat: 19 jun 2007, 19:42
av Smygis
För det första, Jag har inte den blekaste.
För det andra, Vilekn upplösning?
SV: Skapa .jpg fil från Python
Postat: 20 jun 2007, 08:34
av Victor
Smygis skrev:
För det första, Jag har inte den blekaste.
För det andra, Vilekn upplösning?
Okej.
Upplösningen.. Det ser ut som att man har komprimerat en jpg fil för mycket, om ni fattar va ja menar..
EDIT:Jag hittade det och man skriver mara "quality=100" som ett attribut(?) när man sparar bilden
dessutom hittade jag hur man skapar en bild i PIL, inte bara öppnar och redigerar.
Kod: Markera allt
im = Image.new ( "RGB", (200,200), "#fff" )