Massa små bilder ska bli färra men många större. Automatisera med programmering..

Permalänk

Massa små bilder ska bli färra men många större. Automatisera med programmering..

Kryptisk titel? Ska försöka förklara det jag behöver hjälp med.

Det jag vill göra är iaf att jag har ett 11 våder som ska fyllas med bilder. 3213 bilder för att vara exakt.. Varje bild är 10,00cm x 6,67cm

Våderna är 60cm breda, vi kommer ha 10 hela våder + en som är 40cm bred. Varje våd rymmer 6 bilder på bredden, plus den sista som bara rymmer 4.

Då alla våder ligger bredvid varandra så vill jag att första våden högst upp ska ha bild 1-6, nästa våd ska ha bild 7-12 osv tills de tar slut längst bort då börjar nästa rad skrivas. Så har jag räknat rätt börjar nästa varv borde börja på bild 65.

Nu är det så att jag sitter på en Mac, har hela CS 5.5 paketet till mitt förfogande och kan (väl) programmera. Frågan är bara vad man kan åstadkomma på en Mac och hur långt jag måste sträcka mig för att automatisera detta?

Vilket språk löser detta lästast och vad behöver jag för verktyg för att make it happen?

Viktigt är att bilderna inte blir komprimerade eller fuckade på något sätt.

Permalänk
Medlem

De flesta språk kan nog lösa detta. Python med Python Image Library kan nog funka rätt bra. http://www.pythonware.com/products/pil/
Kan du programmera själv?

Permalänk

Jag har aldrig skrivit i Python men jag kan programmera t.ex. Java, Lua och lite C++ (Jag är mer inriktad på webb så kan PHP och Javascript som min egen innerficka). Men jag antar att jag kan klura ut det(?) bara jag får en spark i rätt riktning hur jag sätter upp det jag behöver på min Mac. Alltså, vad behöver jag dra ner för att kunna kompilera/köra något på min Mac?

Permalänk
Medlem

import Image # bredd och hojd i pixlar per blid w = 100 h = 50 #heter bilderna olika nanting valdigt olika? isf kan man ta alla fran en directory tex images = ["b1.PNG", "b2.PNG", "b3.PNG"] images = map(Image.open, images) new = Image.new("RGB", (w*len(images), h)) #enumerate returnerar en lista av (index, image), #allstå [(0, Image.open("b1.PNG")),...] osv och i blir indexet och im bilden for i, im in enumerate(images): new.paste(im, (w*i, 0)) new.save("merged.png")

Installera Python 2.7.3 från http://python.org/download/

Ta source kit här http://www.pythonware.com/products/pil/
och kör

python setup.py install

det borde funka iaf.

Du kanske måste skaffa zlib om du ska göra png:s. http://www.zlib.net/

Om det är nått mer är det bara att fråga.

Permalänk
Skrivet av tufflax:

Ta source kit här http://www.pythonware.com/products/pil/
och kör

python setup.py install

det borde funka iaf.

Du kanske måste skaffa zlib om du ska göra png:s. http://www.zlib.net/

Om det är nått mer är det bara att fråga.

Då du säger "och kör

python setup.py install

". Vart ska jag då packa upp biblioteket för att det ska bara vara att skriva det?

Inser att syntaxen inte är min vanliga cup of tea... Och att jag nog var lite väl stursk som trodde jag bara skulle kunna lösa detta. Men tack för din hjälp.

Permalänk
Medlem

Efter att du har intstallerat python så är det bara "unzippa" PIL-tar.gz:n var som helst och där hittar du setup.py. Gå till din terminal och skriv

cd unzippad-dir
python setup.py install

Om du har problem med själva koden så kan jag skriva den åt dig bara du ger precisa specifikationer. Eller så kan du tom skicka bilderna till mig.

Permalänk

Efter den bearbetat en massa filer fick jag detta till svar på installen:
de/python2.6 -c _imaging.c -o build/temp.macosx-10.6-universal-2.6/_imaging.o
unable to execute gcc-4.2: No such file or directory
error: command 'gcc-4.2' failed with exit status 1
Icedor-Johanssons-iMac:~ icedorjohansson$

Hade jag felaktig version av nått eller vad hände?

Permalänk
Medlem

Kanske detta hjälper http://stackoverflow.com/questions/5944228/python-build-using...

Jag anväder inte OSX så jag vet inte exakt vad man ska göra.

Permalänk
Medlem

Förresten, du kanske måste ha distutils för att köra python setup.py.

Tror det är detta du ska ha: http://pypi.python.org/pypi/setuptools

EDIT: Nej, förresten. Fel! Hm...

EDIT 2: Du kanske kan använda en package manager? Som sagt, kan inte OSX men nått i stil med: sudo apt-get install python-distutils

EDIT 3: Du kan annars skaffa "pip" http://www.pip-installer.org/en/latest/installing.html och sen köra
pip install pillow

pillow är en fork av PIL som ska vara enklare att installera

Annars kan du köra easy_install på .egg-filerna längst ner på denna sida http://pypi.python.org/pypi/Pillow/1.7.7
easy_install får du här http://pypi.python.org/pypi/setuptools

Hoppas nått funkar. Annars som sagt kan jag göra det åt dig om jag får bilderna.

Permalänk

tufflax, tack för din hjälp. Dock var det ett hellvete att få PILL med JPEG stöd att funka på en Mac,iaf om man som jag inte kan linux till att börja med. Sen Apples fantastiska Xcode som jag först trodde man behövde (man behöver det gör GCC om man inte hittar en homebrew). För att sen få ett vredes utbrott på hur skabbiga alla sidor med paket är. Om de vill att man ska lära sig deras språk som de tycker är bäst i hela världen, skulle de då inte tjäna på att göra en mindre skrämmande sida, skippa att gömma den version man borde använda i 5 spaltmeter med text och istället bara sätta ut en fet downloadknapp?

Hur som helst, nu har jag en fullt fungerande, kompilerande och PILL med JPEG stöd glödande installation av Python. Och ja, koden är skriven och fungerar.

Permalänk
Medlem

Nice! Jag trodde nästan du gav upp på Python och PIL.

"Viktigt är att bilderna inte blir komprimerade eller fuckade på något sätt." JPEG komprimerar bilderna på ett sätt som inte bevarar all information. Men det kanske inte spelar någon roll om du väljer bra kvalitet.

Permalänk

Nä, det blev TIF istället. Som sagt, ingen komprimering då dessa ska till tryck.

Permalänk
Medlem

Nu har jag bara snabbläst din tråd utan att egentligen förstå närmare vad du vill göra men jag vill bara tipsa eller påminna om att aldrig glömma av vad det fantastiska verktyget ImageMagick kan hjälpa till med när det handlar om automatiserad bildbehandling.

//C

Permalänk
Medlem

Passar på att följa upp mig själv nu när jag läst igenom allt en gång till

Jag tycker fortfarande inte att det är helt klart vad du vill ha ut? Är det en enda stor bild som ska vara för hela "utskriften" eller en bild per våd?

Hur hög är en våd? Är det så att att de bara rymmer en bild eller är får det plats med flera?

Hur som helst så är ImageMagick fortfarande ett utmärkt verktyg. Om bilderna är döpta i sekventiell ordning så skulle följande kunna fungera.

montage -tile 64x1 *.tif montage.tif

Detta kommer producera montage-0.tif till composite-50.tif (Det är 50 + en inkomplett längd om det var 3213 stycken).

Rymmer varje våd två i höjd så skulle du t.ex kunna göra följande då

montage -tile 64x2 *.tif montage.tif

Så får du två rader (det är alltså tile som styr).

Om namngivningen inte är sekventiell så du inte kan använda stjärnan så får du helt enkelt namnge dem i den ordning du vill ha dem.

//C

Edit: Ändrade antalet 3123 till 3213.

Permalänk

conio, det är 11 våder jag ville ha ut och nu har. Ska kika på ImageMagick om jag får ett liknande problem i framtiden. Men måste säga att Python var väldigt intressant, både för bilder och för andra saker så kul att ha fått en start där.

Tack för all hjälp!