torek, 7. september 2010

Digitalni okvir...

Viewsonic VFM735w-51P
Ata je lani dobil za rojstni dan tale okvir in seveda kdo drug se ga bo lotil kot jaz? ;-) Z veseljem sem ga pogledal in testiral po dolgem in po čez.

Leto je skoraj naokrog in sem spet tu, ko sem dobil nalogo, da na novo naložim digitalni okvir s svežimi fotografijami. Ko se na njem že pol leta vrtijo iste slike, postane počasi tudi to dolgočasno, ampak a ni ravno point teh okvirjev, da so na njem vedno sveže nove slike?

Ja, naj bi bilo tako, v kolikor lastnik okvirja ni len in se mu ni izmed 20.000 slik izbrat 1098 takšnih, ki so vredne, da se postavijo na ogled. In pa tukaj nastopi še druga težava, ki me najbolj muči oz. me odvrača, da bi redno dodajal sveže slike. Te fotografije je potrebno nato porezat (cropping, resizing, cutting), da se vidi dejansko kaj zanimivega iz slike.

Problem tega okvirja je, da je njegova resolucija za prikazovanje v razmerju 15:9 ali drugače povedano v pikslih 800×480px ali v inčih 7'. Večina fotoaparatov pa slika v razmerju 4:3 oz. podobnih in seveda v veliko večjih resolucijah. V kolikor nočeš, da imajo prikazane slike črni rob, je potrebno nekaj naštudirati. Okvir omogoča naključno prikazovanje slik, kar je zelo dobrodošlo, saj če se slike vrtijo po vrsti, si po nekaj časa lahko zapomniš vrstni red in že veš, aha za to sliko morja bo prišla slika Bleda in tako dalje...  To shuffle prikazovanje je sicer v redu, ampak jaz nisem bil zadovoljen z njim, ker se mi vrstni red ni zdel preveč random!

In kaj narediti, najboljše te izbrane slike poimenovati naključno, tako, da ne bodo po vrstnem redu, kot imajo ime. Kako najlažje narediti to? Uporabiti malo znanja, ki so me naučili na FERIju (asistent Šinjur) :-) jap, tudi nekaj uporabnega lahko odneseš iz faksa! Ker sem Linux/Windows uporabnik, in mi je bolj  všeč eksperimentiranje, sem se spomnil dokaj enostavne rešitve, kako poimenovat 1098 slik na random. Enostavna bash skripta, ki naredi točno to, kaj hočem.
#!/bin/bash
# nakljucno poimenuj vse .jpg datoteke
for datoteka in *.jpg
  do
   echo mv "$datoteka" $RANDOM.jpg
done

Ampak tu pa nastane prva težava, ker se lahko zelo hitro zgodi, da se bo tudi ta random ponovil, in povozil že obstoječo datoteko z random imenom (ukaz mv ne vpraša, ali zares želimo zamenjati datoteko - the linux power!), zato se je bilo treba spomniti boljše rešitve. In kaj mi je stric google povedal? Ne uporabljaj random generatorja na tak način! Uporabi ukaz sha1sum, ki je podoben md5sum-u in se večinoma uporablja za izračun checksum vrednosti za datoteke. Sliši se kot rocket science za tiste, ko ne veste o čem govorim :-)

To niti ni toliko pomembno, kaj je, kot pa drugo dejstvo, da ima vsaka datoteka svojo unikatno 160-bitno vrednost in to je točno to kaj si želim, pa še posledica tega je da se bodo datoteke naključno razvrstile. In to je to, pika na i!Češnja na vrh smetane! Izboljšana bash skripta pa je sledeča:
#!/bin/bash
# sha1sum preimenovanje datotek
for datoteka in *.jpg;
  do
   mv "$datoteka" $(echo "$datoteka" | sha1sum | cut -f1 -d' ').jpg
done

Skripta se požene in preimenuje vse .jpg datoteke glede na njihovo sha1sum vrednost. Ta del je rešen,  sledi pa naslednji del, ki je najbolj težaven in dolgočasen. Cropping, Resizing & cutting a picture.

Preizkusil bom nekaj batch resizerjev in cropperjev in bom kaj hitro ugotovil, kam pes taco moli. Vse kaj rabim zaenkrat je to, da mi vse slike (ležeče in pokončne) resiza na širino 800px, čeprav se mi zdi, da vedno bolj smrdi po ročni obdelavi slik, ker pri nekaterih bo pa tudi treba ročno narediti crop :-(

No ja, vseeno pa sem uspešno rešil to zadevo z razvrstitvijo slik. Ostalo pa bom še poskusil rešiti the geek way ;-)


[edit]
Resizanje je delovalo okej s programom FastStone ImageViewer-jem Vse slike sem z batch resize orodjem priredil na širino 800px. Potem pa pride na vrsto ročno delo corpanja (rezanja motivov). Če bo tehnologija pustila, bom izračunal koliko klikov in metrov je naredila miška med tem časom, in kam bi lahko prišel, če bi potegnil vse to v ravno črto! :-)

[edit 2]
Uspelo mi je zbrati podatke o tem koliko kilometrov sem naredil z miško in koliko klikov je bilo potrebnih za ta projekt. Na koncu sem imel na voljo 1060 slik, ker so nekatere bile po ponovnem pregledu neprimerne za okvir ;-)
Sledi še malo znanosti in računanja:
- Za vsako sliko sem porabil v povprečju 25 sek., kar znese 26500 sek. oz. če pretvorimo v ure je to 7.36 ur; dejansko pa sem delal 5 dni, ko sem imel čas in voljo.
- Za vsako sliko sem z miško naredil 70cm po ekranu, kar znese 74200cm oz. če pretvorimo v metre je to 742 metrov!
- Za vsako sliko pa sem porabil v povprečju 20 klikov z miško ter bližnjic s tipkovnico, kar znese 21200 klikov.
Vse skupaj sem beležil s programom Whatpulse, ki beleži vse klike in pritiske na tipkovnico. Sedaj pa že tudi nekaj časa pridno beleži razdalje, ki jih naredimo z miško po namizju. Tukaj si lahko pogledate moj profil in pa profil moje ekipe. Ker ta program uporabljam že od leta 2005 se je že nabralo tudi nekaj lepih številk. Če je verjeti tej statistiki sem naredil že 857 kilometrov z miško! Vau :-O

Kar ogromne številke za navidez tako enostavno nalogo, pa vendar se je obrestovalo, ker sedaj se slike  ne ponavljajo in zaradi njihovega števila ne moraš vedeti vrstnega reda. Vsi veseli! :-)

1 komentar:

  1. Casino | DrmCD
    Home · Casino Games · Table Games · Video Poker · 수원 출장마사지 Roulette · Slots 익산 출장안마 · 거제 출장마사지 Bingo. Don't miss the latest updates and 나주 출장마사지 news 김포 출장마사지 from Dr.MD. We offer

    OdgovoriIzbriši