Képek csoportos átméretezése

Fórumok

Tud vki olyan progit, mely hajlandó erre?

A képek azonos felbontásúak, azonos típúsuak. Mivel lehet egyszerre többet átméretezni?

Hozzászólások

szia

imagemagick csomagban van egy convert nevű program
az tökéletes lesz neked

Celeron-M 1400Mhz, 768M, Debian SID, 2.6.22-rc2

Én is a convert-et ajánlom. Link a használatról: http://www.imagemagick.org/script/convert.php

Egyszer kellett 500 MHz-es gépen real-time képet kicsinyítenem, és nem az imagemagick a leggyorsabb. djpeg-gel tömörítettem ki jpeg-ből, majd netpbm csomagban lévő progikat használtam. De ez elég speciális igény volt.

bash script + imagemagick convert
for i in blablabla (mondjuk egy ls|grep jpg)
do
convert -resize WIDTHxHEIGHT $i /valahol/másikkönyvtár/$i
done

En is probalkoztam, de az imagemagick azonos jpg-meret mellett gyatrabb kepeket csinal a gimphez kepest. Csak eddig nem sikerult a gimpet beloni, hogy script-bol meretezzen at kepeket.
Tudja valaki, hogy lehetne ravenni a gimp-et script-bol parameterezheto atmeretezesre?

Jaham, na most kicsit kiserletezgettem. A convert -thumbnail opciot kell hasznalni, ha thumbnail-t akar az emberfia. Osszeveteskeppen: egy 2-3 megapixeles tesztkepbol a -resize 160x120 -al 13.4K lett az eredmeny, -thumbnail 160x120 -al meg 6.9K. Minosegre nem lathato kulonbseg teljes kepernyore kinagyitva sem.

Konkluzio: kicsinyiteni -thumbnail -el kell!

Jah, gimp valóban szebben csinálja. Egy script-fu scriptet kell először írni (lehet pythont is, de ehhez találtam hamarabb mintát).
.gimp-2.6/scripts/myscript.scm tartalma:


(define (convertscale filename x y)
   (let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
          (drawable (car (gimp-image-get-active-layer image))))
     (gimp-image-scale-full image x y INTERPOLATION-LANCZOS)
     (set! filename (string-append "s" "_" filename))
     (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
     (gimp-image-delete image)))

(define (batchconvertscale pattern x y)
   (let* ((filelist (cadr (file-glob pattern 1))))
      (while (not (null? filelist))
          (let* ((filename (car filelist))
   (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
          (drawable (car (gimp-image-get-active-layer image))))
     (gimp-image-scale-full image x y INTERPOLATION-LANCZOS)
     (set! filename (string-append "s" "_" filename"))
     (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
     (gimp-image-delete image))
     (set! filelist (cdr filelist)))))

Az első szript egy képet, a második pedig többet (wildcard-os ?*) is át tud méretezni.

Aztán meghívni így kell:
gimp -i -b '(batchconvertscale "l*.png" 800 600)' -b '(gimp-quit 0)'

Az eredmény-fájlok neve s_eredetifájnév lesz.

Bővebb infó a gimp függvények paramétereiről: gimp/help/procedure browser

Köszi Mindenkinek!

Sztem az imagemagic megfelelő lesz.
Gyakorlatilag semmi extra igényem nincs, csak 80-90db 8Mpixeles képet kell e-mailben küldésre alkalmas méretűre kicsinyítenem, vhonnan rémlett, hogy létezik parancssoros progi a célra, de sehol sem találtam, grafikus felülettel rendelkezők meg csak egyesével tudják. Nem szeretném a fél életemet kattintgatással tölteni :)

Még, ha érdekel valakit két guis programot tudnék ajánlani:
http://kde-apps.org/content/show.php/SIR+-+Simple+Image+Resizer?content…
qt-s, (magyar is, annyira amennyire én:) - én fordítottam), és easy to use, nagyon örültem neki, mert apámnak jól jött.

Aztán van még az xnview kellemesen elhanyagolt program, motif-os, és kicsit bugos. Azért szeretem mert nagyon sok formátumot ismer, és vannak kellemes fícsörjei. (Ez is tud batch konvertálni)

_______________________________________________________________
És azt álmodtam, hogy úgy ébredtem, mint aki nem tudja hol van.

Üdv az uraknak!

Hasonló problémám akadt, ezért nem nyitnék új totyikot.

for i in *.jpg; do convert -resize 50% $i $i; done

A fenti scriptet használnám, viszont a következő buktató van a dologban.:
Akad ~1000db kép, "Vezetéknév Keresztnév.JPG" felépítésű. Akad sok olyan is , ahol 2 keresztnév van, no meg olyan is ahol mindezt megelőzi egy "Dr. " Egyszóval átlagosan 1-2 szóköz van a fájlnévben, valamint elvétve "." .

Hogyan tudnám, az eredeti fájlnevek megtartásával működésre bírni?

update.:(mogrifty megoldja *.*-al ezt a problémát, de már csak kiváncsiságból is érdekellne hogy lehet megoldani.)

Köszönöm.

udv
letix

---------------------------------------------
linux alapparancsok - http://www.doksi.atw.hu

Elvileg működik a dolog, a következő képpen.:

for i in *.*; do convert -thumbnail 160x120 50% "$i" "resized-$i"; done

Viszont ha csak *.JPG-t adok meg az i értékének, nem működik a dolog, hisz a Keresztnév.JPG-vel dolgozna, ami ugye nem létezik.

ha "*.JPG"-t használok, akkor pedig a file neveket nem tárolja i-ben, és a kimeneti állományok resized-1.JPG, resized-2.JPG (és így tovább) lesznek.

Mindenesetre már működik, és mivel csak képek vannak az adott mappában, így számomra megfelelően.

Köszönöm!

udv
letix

---------------------------------------------
linux alapparancsok - http://www.doksi.atw.hu