klistra in en bild/icon i en annan bild (Python)

Här diskuteras programmering och utveckling
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

klistra in en bild/icon i en annan bild (Python)

Inlägg av Victor »

hejsan igen, nu kommer jag med en till fråga :)

som jag sagt tidigare så är jag inte vidare bra på att läsa och förstå manualer. det kan bero på antingen mig eller på att manualerna inte är vidare bra. förmodligen en blandning. Hur som helst, jag vill klistra in en bild i en bild som jag jobbar med.

Jag har luskat ut att det är metoden/funktionen "paste()" som jag ska använda, tror ja. Men hur använder jag den?

Jag använder PIL med modulen Aggdraw (så att det ser finare ut/antialiasing) i Python.

Höpps ni förstår :)

/Victor
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: klistra in en bild/icon i en annan bild (Python)

Inlägg av Victor »

Jag tror ja har gjort någorlunda rätt men det jag får ett fel irriterande fel.

Kod: Markera allt

pydev debugger
Traceback (most recent call last):
  File "C:\Program Files\Eclipse 3.2.2\plugins\org.python.pydev.debug_1.3.4\pysrc\pydevd.py", line 754, in <module>
    debugger.run(setup['file'], None, None)
  File "C:\Program Files\Eclipse 3.2.2\plugins\org.python.pydev.debug_1.3.4\pysrc\pydevd.py", line 597, in run
    execfile(file, globals, locals) #execute the script
  File "C:\Documents and Settings\eviceng\My Documents\Python\cellTestare\src\paste.py", line 9, in <module>
    im.paste("icon.png", im.getbbox())
  File "C:\Python25\Lib\site-packages\PIL\Image.py", line 1058, in paste
    im = ImageColor.getcolor(im, self.mode)
  File "C:\Python25\Lib\site-packages\PIL\ImageColor.py", line 100, in getcolor
    color = getrgb(color)
  File "C:\Python25\Lib\site-packages\PIL\ImageColor.py", line 96, in getrgb
    raise ValueError("unknown color specifier: %r" % color)
ValueError: unknown color specifier: 'icon.png'
då ser den enkla koden ut såhär:

Kod: Markera allt

from PIL import Image
import ImageDraw

im = Image.new("RGBA", (500,500), "white")
draw = ImageDraw.Draw(im)

im.paste("icon.png", im.getbbox())

del draw
im.save("paster.png", "PNG")
Någon som kan hjälpa mig?

EDIT: la dit _hela_ felmedelandet..
Senast redigerad av 1 Victor, redigerad totalt 17 gånger.
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: klistra in en bild/icon i en annan bild (Python)

Inlägg av Victor »

Ahh, nu förstår jag det felmedelandet..

funktionen paste() kan också användas till att klistra in färger och nu tror den att "icon.png" är en färg och det är därför det felmedelandet kommer upp. Finns det ingen som har ett annat alternativ till paste() som fungerar att klistra in bilder med?
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: klistra in en bild/icon i en annan bild (Python)

Inlägg av Victor »

Jaha, får väl svara på mig själv igen :)

denna kod funkar:

Kod: Markera allt

from PIL import Image
import ImageDraw
 
im = Image.new("RGB", (500,500), "white")
draw = ImageDraw.Draw(im)
 
icon = Image.open("icon1.jpg")
# get the correct size
x, y = icon.size
im.paste(icon, (0,0,x,y))
 
del draw
im.save("test.jpg", "JPEG")
Dock var det inte det jag sökte efter. Jag skrev fel kod och kanske lite otydligt i mitt första inlägg. Jag använder modulen aggdraw och där fungerar inte paste()-funktionen på samma sätt, om det övht finns den funktionen. Har någon ngt annat tips för att klistra in en bild i en annan bild mha PIL och modulen aggdraw?
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Skriv svar

Återgå till "Programmering och webbdesign"