Fórum Root.cz

Hlavní témata => Software => Téma založeno: jadd 04. 04. 2012, 03:44:40

Název: Čím setřídit obrázky podle rozměrů?
Přispěvatel: jadd 04. 04. 2012, 03:44:40
Nautilus ani Shotwell to neumí.
Průzkumník ve Windows to zvládá setřídit podle šířky i výšky.
Používám sice Gnome ale nevadila by ani aplikace z jiného prostředí, včetně javy.
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: danielsoft 04. 04. 2012, 11:40:57
napadá mě napsat si nějakej skript, kterej bude využívat služeb programu "identify" z balíčku ImageMagick

( http://www.imagemagick.org/script/identify.php )
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: drnest 04. 04. 2012, 13:41:14
volat postupně identity na každý obrázek je pomalé

Zkusil jsem google a našel jsem tohle: http://ubuntuforums.org/showthread.php?p=6675830

Dalším řešením je prohlížeč obrázků gthumb
Úpravy: Nastavení: Prohlížeč - Titulek, zaškrtnout Dimensions - tím se budou rozměry zobrazovat
pak menu Zobrazit: Řadit podle... rozměry
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: Peter 04. 04. 2012, 14:01:26
:volat postupně identity na každý obrázek je pomalé

Ja mám dosť pomalý počítač (1.2GHz PowerPC G4), ale nepripadá mi pomalé dostať výsledok za 20 tisícin sekundy až 50 tisícin sekundy. Teda, prvé volanie je pochopiteľne pomalšie, keďže sa musí dostať daný nástroj aj s knižnicami do pamäte.
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: belzebub 04. 04. 2012, 15:02:13
takovyhle skriptik (rekneme ze se jmenuje x.sh) napise velikost obrazku v pixelech a jeho jmeno
#!/bin/bash
for f in $@
do
   read w h <<< $(identify $f | cut -d' ' -f3 | tr 'x' ' ')
   echo $((w * h)) $f
done


pokud ho pak pustime tak obrazky setridene podle plochy dostaneme napr. takto:
./x.sh *.jpg | sort -n | cut -d' ' -f2

pokud chceme tridit take podle horizontalniho rozliseni, muzeme zmenit vypis z

   echo $((w * h)) $f

na

   echo $((w * h)) $h $f


..atd

rychlost pro 100 obrazku 640x480 na core2duo 2.5GHz: 0.7s
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: mx1 04. 04. 2012, 21:05:14
Můj Konqueror (KDE 3.5.10) — Pohled s informačním seznamem — zobrazí ve sloupcích:  Název, Datum vytvoření, Rozměry, Doba expozice, Komentář, ...
Na co kliknu, podle toho setřídí. Kliknu podruhé aby setřídil naopak.
Jenom neumí třídit podle výšky, vždycky to setřídí podle šířky, potvora. A hrozně dlouho načítá ty údaje o souborech.
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: jadd 04. 04. 2012, 22:00:17
Díky, všem,
Našel jsem jedinou aplikaci která to vše umí, je to Gimageview (http://gtkmmviewer.sourceforge.net/index.html.en).
Jen často padá, možná to je tím, že používám Gnome-3.2 (bez fallback módu) ale v Gnome-2 by třeba nepadala.
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: jadd 04. 04. 2012, 22:13:54
Možnosti třídění.
Jinak program umí daleko víc, třeba hledat duplicity pomocí součtů.
Název: Re:Čím setřídit obrázky podle rozměrů?
Přispěvatel: drnest 05. 04. 2012, 09:52:46
Rozdíl je v tom, že identity se musí zavolat tolikrát, kolik těch obrázků je a ten exec nějaký strojový čas zabere. Ten python script se spustí a pak už jen načítá obrázky. Pokud se přidají další shellové utilitky (cut, sort) rozdíl se ještě zvětší. Pro jednorázové použití to není problém. Ale pokud to chcete použít třeba interaktivně do toho Nautila, tam by to už mělo význam.

Je teda pravda, že dnešní počítače jsou rychlé až dost. Schválně jsem si to zkusil porovnat a rozdíl je vidět až u většího počtu obrázků:
Intel(R) Core(TM)2 Duo CPU     E7600  @ 3.06GHz  4GB RAM
složka s cca 500 jpg soubory

Kód: [Vybrat]
time identify *.jpg > /dev/null

real    0m0.179s
user    0m0.142s
sys     0m0.035s

Kód: [Vybrat]
time python velikosti_obrazku.py *.jpg > /dev/null

real    0m0.095s
user    0m0.066s
sys     0m0.028s