Sida 1 av 1
Script för att ändra storlek på foto [LÖST]
Postat: 07 feb 2009, 11:36
av TobbeT
Hej,
Konservburk hjälpte mig med ett script som ändrar storlek på foton från exempelvis 3456x2592 till 800x600. Det funkar alldeles ypperligt. Jag har skapat en kopia av det scriptet och ändrat lite grann så att jag även kan skapa foton som är 1280x960 i storlek. Problemet som uppstår är att skapar jag först 800x600 så skapas en mapp i aktuell katalog, där hamnar alla bilder i den storleken. Vill jag nu skapa foton i storleken 1280x960 skapas den mappen både i aktuell katalog samt som en underkatalog till 800x600. Hur kan det bli så? Jag skickar med hur scriptet ser ut, det enda jag har ändrat är storleken och namnet på katalogen som ska skapas. Nån som ser nåt galet i scriptet?
Foton 800x600
Kod: Markera allt
#!/bin/bash
find -iregex '.*\.jpe?g' -type f -execdir mkdir -p 800x600 \; -execdir mogrify -path 800x600 -scale 800x600\> {} \;
Foton 1280x960
Kod: Markera allt
#!/bin/bash
find -iregex '.*\.jpe?g' -type f -execdir mkdir -p 1280x960 \; -execdir mogrify -path 1280x960 -scale 1280x960\> {} \;
Det blir alltstå så här efter att jag har kört båda scripten:
FOTO/2009/02/02-07/En massa foton här
800x600 (mappen skapas av scriptet)
1280x960 (mappen hamnar som en undermapp till 800x600
1280x960 (men skapas även här) alltså jag får en dublett av den mappen
Hoppas det är glasklart
//Tobbe
Re: Script för att ändra storlek på foto
Postat: 07 feb 2009, 12:34
av palle-kuling
find går ned rekursivt i underkataloger, så "-maxdepth 0" bör förhindra detta.
Du fattar vad jag menar va? När du skapat 800x600 i en katalog med bilder, och sen kör scriptet med 1280x960 så går den ner i 800x600 *också* gör 1280x960 av dem med. Så dom är inte riktigt dubletter, utan "resizade" två ggr.
Kör en md5sum av två filer som "verkar" idenstiska så ska du se att dom troligen skiljer sig åt ändå...
Re: Script för att ändra storlek på foto
Postat: 07 feb 2009, 14:38
av Konservburk
Om jag inte minns helt fel så är
-maxdepth 0 uteslutet eftersom tanken var att det hela ska fungera även i underkataloger. Det är förmodligen bäst att låta
find sortera bort bilder som ligger direkt i en katalog med namn
/<siffror>x<siffror>/.
Kod: Markera allt
find -iregex '.*\.jpe?g' ! -iregex '.*/[0-9]+x[0-9]+/[^/]*' -type f \
-execdir mkdir -p 800x600 \; \
-execdir mogrify -path 800x600 -scale 800x600\> {} \;
Re: Script för att ändra storlek på foto
Postat: 07 feb 2009, 15:26
av TobbeT
Jag testar...
Testar det nya scriptet...FUNKAR klockrent, tusen tack
//Tobbe
Re: Script för att ändra storlek på foto
Postat: 09 okt 2011, 16:07
av TobbeT
Skrämmer liv i denna gamla post. Jag önskar förfina det ytterligare. Bildformatet som jag är ute efter kanske man kan kalla "wide". Exempelvis vill jag ha ett format som är 354x234, men anger jag det i mitt script så blir formatet 312x234. Hur fixar man till det?
Här är scriptet som jag använder
Kod: Markera allt
#!/bin/bash
find -iregex '.*\.jpe?g' ! -iregex '.*/[0-9]+x[0-9]+/[^/]*' -type f \
-execdir mkdir -p 354x234 \; \
-execdir mogrify -path 354x234 -scale 354x234\> {} \;
Re: Script för att ändra storlek på foto
Postat: 10 okt 2011, 22:03
av Konservburk
TobbeT skrev:Exempelvis vill jag ha ett format som är 354x234, men anger jag det i mitt script så blir formatet 312x234. Hur fixar man till det?
Det finns tre olika sätt:
1) Låta bilden bli ihoptryckt eller utdragen.
2) Skära bort delar av bilden.
3) Fylla ut med annat, t.ex svarat fält.
Vilken metod som är lämpligast beror helt på situationen, dvs vad det är för bilder och vad de ska användas till.
Re: Script för att ändra storlek på foto
Postat: 11 okt 2011, 08:54
av TobbeT
Konservburk skrev:TobbeT skrev:Exempelvis vill jag ha ett format som är 354x234, men anger jag det i mitt script så blir formatet 312x234. Hur fixar man till det?
Det finns tre olika sätt:
1) Låta bilden bli ihoptryckt eller utdragen.
2) Skära bort delar av bilden.
3) Fylla ut med annat, t.ex svarat fält.
Vilken metod som är lämpligast beror helt på situationen, dvs vad det är för bilder och vad de ska användas till.
Alternativ 2 skulle passa bra. Jag tror att jag fixade det med ! efter formatet jag vill ha: 354x234!, då blir all afoton/fotona i det formatet.
Tack på förhand
Re: Script för att ändra storlek på foto
Postat: 14 okt 2011, 08:08
av Konservburk
TobbeT skrev:Alternativ 2 skulle passa bra. Jag tror att jag fixade det med ! efter formatet jag vill ha: 354x234!, då blir all afoton/fotona i det formatet.
Om du kör med
! efter storleken så är det alternativ 1 du har använt dig av. Det betyder att dina bilder blir aningen ihoptryckta eller utdragna. Det är helt ok så länge du själv tycker att resultatet ser bra ut.
Vill du köra med alternativ 2 istället så behöver du
-crop +repage i slutet (med lämpliga parametrar). Alternativ 3 kan du på motsvarande sätt få till med
-extent i slutet.
Re: Script för att ändra storlek på foto
Postat: 14 okt 2011, 09:12
av TobbeT
Konservburk skrev:TobbeT skrev:Alternativ 2 skulle passa bra. Jag tror att jag fixade det med ! efter formatet jag vill ha: 354x234!, då blir all afoton/fotona i det formatet.
Om du kör med
! efter storleken så är det alternativ 1 du har använt dig av. Det betyder att dina bilder blir aningen ihoptryckta eller utdragna. Det är helt ok så länge du själv tycker att resultatet ser bra ut.
Vill du köra med alternativ 2 istället så behöver du
-crop +repage i slutet (med lämpliga parametrar). Alternativ 3 kan du på motsvarande sätt få till med
-extent i slutet.
Kan du ge några exempel på -crop +repage och skillnaden om man använder -externt.
Vill inte att bilderna ska bli alltför utdragna och ihoptryckta.
Tack på förhand.
Re: Script för att ändra storlek på foto
Postat: 14 okt 2011, 16:46
av Konservburk
Alternativ 1 (ihoptryckt/utdragen):
Kod: Markera allt
find -iregex '.*\.jpe?g' ! -iregex '.*/[0-9]+x[0-9]+/[^/]*' -type f \
-execdir mkdir -p 354x234 \; \
-execdir mogrify -path 354x234 -scale 354x234\! {} \;
Alternativ 2 (beskärning):
Kod: Markera allt
find -iregex '.*\.jpe?g' ! -iregex '.*/[0-9]+x[0-9]+/[^/]*' -type f \
-execdir mkdir -p 354x234 \; \
-execdir mogrify -path 354x234 -scale 354x234^ \
-crop 354x234+0+0 -gravity center +repage {} \;
Alternativ 3 (utfyllnad):
Kod: Markera allt
find -iregex '.*\.jpe?g' ! -iregex '.*/[0-9]+x[0-9]+/[^/]*' -type f \
-execdir mkdir -p 354x234 \; \
-execdir mogrify -path 354x234 -scale 354x234 \
-extent 354x234 -gravity center -background black {} \;
Re: Script för att ändra storlek på foto
Postat: 16 okt 2011, 09:37
av TobbeT
Tusen tack!