Script för att ändra storlek på foto [LÖST]

Här diskuteras programmering och utveckling
Användarvisningsbild
TobbeT
Inlägg: 670
Blev medlem: 20 feb 2007, 11:45
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Eskilstuna

Script för att ändra storlek på foto [LÖST]

Inlägg 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 ;D

//Tobbe
Senast redigerad av 2 TobbeT, redigerad totalt 17 gång.
palle-kuling
Inlägg: 466
Blev medlem: 16 apr 2008, 21:54
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Script för att ändra storlek på foto

Inlägg 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å...
MER MAKT TILL MIG! JAG BESTÄMMER!
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Script för att ändra storlek på foto

Inlägg 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\> {} \;
Användarvisningsbild
TobbeT
Inlägg: 670
Blev medlem: 20 feb 2007, 11:45
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Eskilstuna

Re: Script för att ändra storlek på foto

Inlägg av TobbeT »

Jag testar...

Testar det nya scriptet...FUNKAR klockrent, tusen tack

//Tobbe
GGS-Data Elite, 5200+ 4GB RAM Ubuntu 11.04 64-bitars, 2x500GB HD
Användarvisningsbild
TobbeT
Inlägg: 670
Blev medlem: 20 feb 2007, 11:45
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Eskilstuna

Re: Script för att ändra storlek på foto

Inlägg 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\> {} \;
GGS-Data Elite, 5200+ 4GB RAM Ubuntu 11.04 64-bitars, 2x500GB HD
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Script för att ändra storlek på foto

Inlägg 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.
Användarvisningsbild
TobbeT
Inlägg: 670
Blev medlem: 20 feb 2007, 11:45
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Eskilstuna

Re: Script för att ändra storlek på foto

Inlägg 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
GGS-Data Elite, 5200+ 4GB RAM Ubuntu 11.04 64-bitars, 2x500GB HD
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Script för att ändra storlek på foto

Inlägg 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.
Användarvisningsbild
TobbeT
Inlägg: 670
Blev medlem: 20 feb 2007, 11:45
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Eskilstuna

Re: Script för att ändra storlek på foto

Inlägg 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.
GGS-Data Elite, 5200+ 4GB RAM Ubuntu 11.04 64-bitars, 2x500GB HD
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Script för att ändra storlek på foto

Inlägg 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 {} \;
Användarvisningsbild
TobbeT
Inlägg: 670
Blev medlem: 20 feb 2007, 11:45
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Eskilstuna

Re: Script för att ändra storlek på foto

Inlägg av TobbeT »

Tusen tack!
GGS-Data Elite, 5200+ 4GB RAM Ubuntu 11.04 64-bitars, 2x500GB HD
Skriv svar

Återgå till "Programmering och webbdesign"