10 gennaio 2011 22:30
Scoprire come si usa il corredo fotografico con PivotViewer
Incuriosito da un post di Marco che lo citava, ho deciso di dare un’occhiata a PivotViewer, un controllo per Silverlight 4 che consente di visualizzare grandi moli di oggetti all’interno di un’unica applicazione Silverlight e utilizzare DeepZoom per navigare all’interno di questi dati. In parole piú semplici, disponendo di una base dati in cui ad ogni record è associata una foto (es. un catalogo prodotti o un database di atleti) è possibile filtrare questi dati alla maniera dei client di Business Intelligence, ma con la differenza di aver come risultato una “griglia” di immagini invece che di numeri o stringhe.
La prima collection di dati che mi è venuta in mente per testarlo su un caso pratico è stata la mia libreria di Photogalleries, visto che ogni foto risiede in un Db MS-Sql corredato dai suoi dati EXIF ed era quindi facilmente esportabile nel file .cxml che rappresenta la fonte-dati per il controllo.
Fotograficamente parlando, l’analisi è molto divertente e utile perchè, condotta su una grossa mole di foto, permette di valutare alcuni aspetti non sempre evidenti; oltre a cose "banali" e ovvie (le foto floreali la maggior parte sono fatte col 100 macro... ma va!!) si può infatti scoprire che:
- fotografo più in autunno/inverno invece che nella bella stagione
- che quell’obiettivo costoso che ho da poco comprato lo uso pochissimo
- che un certo zoom lo uso maggiormente ad una focale invece che a un’altra (es. se il 24-105 lo usi moltissimo da 90 in su non pensarci neanche di cambiarlo con il 24-70!)
- che da quando hai la macchina nuova molto meno rumorosa, non usi quasi più il flash ma sfrutti molto di più gli alti ISO
- che, nonostante i testi sacri insegnino di usare diaframmi intermedi (f/9, f10) tu scatti molto a TA (tutta apertura per i non addetti), quindi rassegnati a comprare dei serie L
- che raramente stari l’esposizione (tanto si fa in post-produzione)
- che usi il modo P(rogram), tanto hai comunque la coppia variabile, o l’AV (automatismo a priorità di diaframmi) e che l’automatismo a priorità di tempo è completamente inutile se hai gli altri due (come dico da anni)
...e potrei continuare
A essere sincero tutte queste considerazioni le potevo già fare (e le faccio) anche in Adobe Lightroom, ma il risultato grafico non è così immediato come in PivotViewer (ad es. sfruttando la feature carina del grafico a barre formato dalle foto).
Tecnicamente parlando la cosa è abbastanza semplice: si tratta solo di capire come generare facilmente il file .cxml e i relativi file dzc/dzi di DeepZoom (tecnologia che avevo testato giusto un anno fa, si vede che i primi di gennaio mi ispirano a queste cose…).
Nel mio caso una bella query sql FOR XML ben congegnata sarebbe stata la soluzione più elegante, ma purtroppo è passato troppo tempo da quando Paolo ha cercato di insegnarmela (e si vede che non è entrata bene del tutto nella mia zucca)…ho quindi ripiegato sul tool a linea di comando, dando anche un’occhiata all’add-in per Excel che per cose semplici è forse la soluzione più facile ed immediata.
Il vero problema sta più che altro nel deployment; se avessi voluto generare i file DeepZoom per tutte le 6500 foto delle mie photogallery (o addirittura per le 58.000 totali della mia library) la quantitá di file e directory risultante sarebbe stata enorme. Non si tratta tanto di un overhead di spazio (anzi, addirittura è inferiore ai file originali) quanto del tempo speso con un client ftp a uploadare migliaia (o centinaia di migliaia di files). Per dare un paio di numeri ho convertito le 240 fotografie del mio Greatest Hits provando sia a risoluzione web (900x600) che a quella FullHD (1920x1280); ecco i risultati:
Risoluzione | Nr. Files Jpeg | Dim.Originale | Dim.Convertita | Numero Files DZ | Numero Folder DZ |
900x600 | 240 | 61,6 Mb (62 on disk) | 37,6 Mb (51,7 on disk) | 6169 | 2890 |
1920x1280 | 240 | 306 Mb (306 on disk) | 132 Mb (169 on disk) | 17029 | 3135 |
L’alternativa, come suggerito da Microsoft, è sicuramente quella di generare i file direttamente sul server di produzione, cosa che non dovrebbe essere neanche così difficile visto che su Codeplex viene fornita una library in C# per implementare le stesse funzionalità del command-line tool.
Il mio case-study messo online si è quindi limitato a queste 240 foto, che ovviamente sono un campione troppo piccolo per le analisi di cui sopra, ma che dovrebbe essere sufficiente a far capire le potenzialità del controllo:
Consiglio ai webdesigner di darci un’occhiata e consigliarlo a qualche cliente; sicuramente una ricerca prodotto su un sito o su un B2B (ad es. mi viene in mente questo) condotta in questo modo, per l’utente finale è molto accattivante.