zmensovanie fotiek cez alias

Sekcia: Konfigurácia 18.11.2008 | 23:20
Avatar Stanislav Hoferek Greenie 18.04  Používateľ
mam napad!

tak a je to tu... napad, ktory je uplne jednoduchy. Co takto zmensovat fotky cez alias?

fungovalo by to nasledovne: Pouzivatel si prida do priecinka, napriklad /home/stano/fotky/original, nejake tie fotografie z dovolenky. Povedzme v rozliseni 3200x2400 (ano, moderne fotaky fotia do ovela vyssieho rozlisenia. toto je len priklad).

Druhy krok by bolo zmensenie - a prave tu by bol alias uzitocny. narobili by sa aliasy taketo:

zmensi1600
zmensi800
zmensi400

po zadani a tuknuti enteru by sa fotky zacali zmensovat, napriklad do 1600x1200 ci 800x600. Pouzil by sa na to imagemagick. A rovno by to pridavalo vsetko napriklad do /home/stano/fotky/zmensene




Tak a otazka...
1) co si o tom myslite?
2) kto s tym pomoze?
    • Re: zmensovanie fotiek cez alias 18.11.2008 | 23:53
      tatar   Návštevník
      convert -resize 800x600 original.jpg zmenseny.jpg
      • Re: zmensovanie fotiek cez alias 19.11.2008 | 00:47
        Avatar Stanislav Hoferek Greenie 18.04  Používateľ
        no uz len specifikovat adresare (to zvladnem) a pridat nejake to vyostrenie ci co za dobrotu sa to pouziva...
    • Re: zmensovanie fotiek cez alias 19.11.2008 | 00:25
      still   Návštevník
      Okrem aliasu sa da pouzit aj v nautilus-actions, takze staci len kliknut pravym na fotku a dat zmensit :-)
      • Re: zmensovanie fotiek cez alias 19.11.2008 | 00:47
        Avatar Stanislav Hoferek Greenie 18.04  Používateľ
        to mam samozrejme pridane tiez
        • Re: zmensovanie fotiek cez alias 19.11.2008 | 04:00
          ello   Návštevník
          spusti skript v adresáry s fotkami, za resize daj požadovaný rozmer.
          #!/bin/bash
          ls *.jpg | while read line
          do
              convert $line -resize 800x600 $line
              done
          
          • Re: zmensovanie fotiek cez alias 19.11.2008 | 12:45
            Avatar Stanislav Hoferek Greenie 18.04  Používateľ
            a keby sa dalo aj to 800x600 ako premenna?

            ze by sa cez alias napisalo iba zmensi, a potom by sa ukazalo jednoduche menu. napriklad taketo:

            zmensit na 800x600 1024x768 1600x1200
        • Re: zmensovanie fotiek cez alias 19.11.2008 | 12:41
          Avatar Lubos ubuntu  Používateľ
          ja by som to tiez riesil cez skript, ale asi by som radsej pouzil for, ale to je len vec vkusu.
          a zaspal so svojim starym joystickom v ruke...
    • Re: zmensovanie fotiek cez alias 19.11.2008 | 19:13
      Avatar janico Ubuntu x.xx ,  Používateľ
      viem ze pre win je to image resizer, pravym tlacitkom na obrazok a rezise podla moznosti
      www.satforum.sk
    • Re: zmensovanie fotiek cez alias 19.11.2008 | 19:32
      Avatar Stanislav Hoferek Greenie 18.04  Používateľ
      na blogu petra krcmare som nasiel toto:

      #!/bin/bash
      mkdir zmensene
      for soubor in *.jp* ; do
      convert $soubor -resize 800x600 -quality 80 zmensene/$soubor
      done


      tak uz len par uprav a bude to :)
    • Re: zmensovanie fotiek cez alias 19.11.2008 | 20:21
      Avatar Dare_devil Debian, OpenSuse  Používateľ
      Ja by som bol radsej keby sa to spravalo konzolovo takto:
      viktor@home~: spusti mi program na zmensenie ( treba tomu dat nazov )
      Zlozka s fotkami: ~/fotky/dovolenka/2009/
      Pocet fotiek v zlozke: $POCET_FOTIEK
      zmensit vsetky? A/n A
      Fotky boli zmensene a ulozene do zlozky ~/fotky/dovolenka/2009/zmensene/
      ;)
      There is no flag large enough to cover the shame of killing innocent people
      • Re: zmensovanie fotiek cez alias 19.11.2008 | 20:23
        Avatar Dare_devil Debian, OpenSuse  Používateľ
        Jáj, a zabudol som otazku:
        Velkost:
        1) asd
        2) asd
        3) asd
        4) asd
        5) asd
        ....
        1
        atd..
        There is no flag large enough to cover the shame of killing innocent people
      • Re: zmensovanie fotiek cez alias 19.11.2008 | 20:29
        Avatar Fridolín Pokorný Fedora 21  Používateľ
        a kde je v tom problem?
        • Re: zmensovanie fotiek cez alias 19.11.2008 | 20:34
          Avatar Dare_devil Debian, OpenSuse  Používateľ
          Nikde, je to primitivne, ci uz cez bash alebo C/C++ ... Ja som mu len dal navrh
          There is no flag large enough to cover the shame of killing innocent people
    • Re: zmensovanie fotiek cez alias 19.11.2008 | 21:38
      Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
      cat ~/bin/shrinkimages
      #!/bin/bash
      echo "Press ENTER to shrink all `ls *.jpg | wc -l` images to 1280 width, ctrl+c to exit!"
      read
      for i in *.jpg *.JPG; do convert -size 1280 $i 0$i; echo $i; done
    • Re: zmensovanie fotiek cez alias 26.11.2008 | 01:58
      still   Návštevník
      aby to bolo trosku viac user-friendly (verzia pre nautilus-actions)
      uzivatel si moze vybrat lubovolnu velkost fotiek, rovnako aj vystupny adresar, pripadne zrusit zmensovanie
      len neviem ako jednoduchsie (inak ako tail) komunikovat s inym procesom, resp. zenity, cez fifo bez toho aby sa okamzite po nacitani konca suboru ukoncil..
      #!/bin/sh
      GEOMETRY=`zenity --list --text="Vyberte vyslednu velkost fotiek,\npotom vyberte adresar kam sa maju upravene fotky ulozit.\n\nUPOZORNENIE: Subory s rovnakym nazvom sa prepisu" --editable --column="Vysledna velkost" 800x600 1600x1200`
      
      if [ -z $GEOMETRY ]
      then
      	zenity --error --text="Fotky neboli upravene\!\n\nMusite vybrat pozadovanu velkost."
      	exit 1
      fi
      
      DIR=`zenity --file-selection --directory`
      
      if [ -z $DIR ]
      then
      	zenity --error --text="Fotky neboli upravene\!\n\nMusite vybrat adresar, kam sa ulozia upravene fotky."
      	exit 2
      fi
      
      PIPE="/tmp/resize_pipe_$$"
      mkfifo $PIPE
      tail --pid=$$ --sleep-interval=0.1 -f $PIPE | zenity --progress --auto-close --text="Zmensujem fotky: $#" &
      PID=$!
      
      i=1
      for FILE in "$@"
      do
      	if [ -z $"`ps -u $USER | grep $PID`" ]
      	then
      		rm $PIPE
      		exit
      	fi
      	convert -resize "$GEOMETRY" "$FILE" "${DIR}/`basename \"$FILE\"`" >> /dev/null
      	echo $((100 / $# * $i)) >> $PIPE
      	i=$(($i + 1))
      done
      
      kill $PID
      rm $PIPE