Pagina 1 di 2

shell tricks!?

Inviato: mar 23 nov 2010, 9:54
da bit123
Salve a tutti,
ho un piccolo problemino con un comando shell. Per estrarre le anteprime da una immagine raw in una determinata directory uso il seguente comando:
dcraw -c -e img.cr2 > directory/img.thumb.jpg
siccome alcuni formati raw contengono una preview in ppm, per evitare di salvare il file con l'estenzione sbagliata come potrei fare?
Vorrei evitare di redirigere l'output a convert in ogni caso.
Grazie!

Re: shell tricks!?

Inviato: mar 23 nov 2010, 14:43
da anycolouryoulike
Non utilizzare l'opzione -c.
Poi se lo vuoi jpeg metti il nome della foto in una variabile, e dopo l'estrazione fai così:

Codice: Seleziona tutto

EXT=$(ls ${variabile%.cr2}.thumb.* | sed -n 's/.*\.\([^.]\+\)/\1/p')
[ "$EXT" != "jpg" ] && convert $variabile.thumb.$EXT $variabile.thumb.jpg

Re: shell tricks!?

Inviato: mar 23 nov 2010, 16:17
da bit123
Grazie, ma bisognerebbe trovare una soluzione senza ricorrere ad ulteriori programmi esterni.

Re: shell tricks!?

Inviato: mar 23 nov 2010, 16:46
da 414N
Non potresti usare l'output del comando file per discriminare il formato dell'immagine dopo averla salvata ed, eventualmente, rinominarla in modo che l'estensione sia quella giusta?

Re: shell tricks!?

Inviato: mar 23 nov 2010, 17:11
da bit123
Per questo potrei usare identify che si trova già in imagemagick.
Se io chiamo dcraw -e, il file viene estratto nella directory corrente con la corretta estensione, ma io devo estrarlo in un'altra directory quindi sono costretto a dare un nome al file estratto, questo è il problema.

Re: shell tricks!?

Inviato: mar 23 nov 2010, 17:50
da 414N
bit123 ha scritto:Per questo potrei usare identify che si trova già in imagemagick.
Se io chiamo dcraw -e, il file viene estratto nella directory corrente con la corretta estensione, ma io devo estrarlo in un'altra directory quindi sono costretto a dare un nome al file estratto, questo è il problema.
Non avendo dcraw sotto mano, devo chiedertelo: il file che estrae di suo (senza l'opzione -c) ha lo stesso nome del file raw (ovviamente con suffisso diverso)?
Se sì, non vedo dove sia il problema: lanci un ciclo che estrae tutte le thumbnail dai raw nella directory corrente (quindi insieme alle raw), poi sposti tutti i *.jpg e *.ppm dove vuoi.

Re: shell tricks!?

Inviato: mar 23 nov 2010, 18:07
da bit123
Il comando viene eseguito da GTKRawGallery (viewer) e quindi vanno estratti in una directory temporanea. Quello che dici tu non è fattibile e poi rallenterebbe troppo
il processo di caricamento delle thumbnails.

Re: shell tricks!?

Inviato: mar 23 nov 2010, 18:14
da bit123
Attualmente io redirigo l'output di dcraw a convert solo per i file con estensione dng e x3f, ma non tutti questi file hanno una preview in ppm e non c'è modo di saperlo prima, forse con exiftool, ma ripeto sono soluzioni che rallentano parecchio. Comunque grazie lo stesso!

Re: shell tricks!?

Inviato: mar 23 nov 2010, 18:29
da anycolouryoulike
Se il problema è sed se ne può fare anche a meno.

Codice: Seleziona tutto

EXT=$(ls ${variabile%.cr2}.thumb.*)
EXT=${EXT##*.}
[ "$EXT" != "jpg" ] && convert $variabile.thumb.$EXT $variabile.thumb.jpg

Re: shell tricks!?

Inviato: mar 23 nov 2010, 18:33
da anycolouryoulike
bit123 ha scritto:Per questo potrei usare identify che si trova già in imagemagick.
Se io chiamo dcraw -e, il file viene estratto nella directory corrente con la corretta estensione, ma io devo estrarlo in un'altra directory quindi sono costretto a dare un nome al file estratto, questo è il problema.
E non puoi dare un cd directory; dcraw -e?

Re: shell tricks!?

Inviato: mar 23 nov 2010, 18:40
da bit123
Aspetta, mi hai fatto venire un'idea, provo a cambiare la cwd e poi vi faccio sapere!

Re: shell tricks!?

Inviato: mar 23 nov 2010, 21:32
da bit123
Niente, era un miraggio :)

Re: shell tricks!?

Inviato: mar 23 nov 2010, 23:39
da targzeta
Perdonami se dico una scemenza. In linea con quanto ti è stato già suggerito, se vai nella directory di destinazione ed esegui da lì il comando dcraw le immagini non vengono estratte nella directory corretta?

Codice: Seleziona tutto

cd destdir
dcraw -e src_dir/img.cr2
Emanuele

Re: shell tricks!?

Inviato: mer 24 nov 2010, 12:01
da 414N
bit123 ha scritto:Il comando viene eseguito da GTKRawGallery (viewer) e quindi vanno estratti in una directory temporanea. Quello che dici tu non è fattibile e poi rallenterebbe troppo
il processo di caricamento delle thumbnails.
Ma viene eseguito da GTKRawGallery in automatico file per file o scegli tu a quali immagini applicare lo script?
L'estrazione di anteprime non dovrebbe già farla automaticamente GTKRawGallery di suo?

Re: shell tricks!?

Inviato: mer 24 nov 2010, 12:56
da bit123
Purtroppo dcraw estrae solo in destdir. L'unica soluzione sarebbe chiedere all'autore di aggiungere una opzione al programma.