shell tricks!?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

shell tricks!?

Messaggio 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!

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: shell tricks!?

Messaggio 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

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio da bit123 »

Grazie, ma bisognerebbe trovare una soluzione senza ricorrere ad ulteriori programmi esterni.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2923
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: shell tricks!?

Messaggio 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?

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio 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.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2923
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: shell tricks!?

Messaggio 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.

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio 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.

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio 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!

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: shell tricks!?

Messaggio 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

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: shell tricks!?

Messaggio 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?

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio da bit123 »

Aspetta, mi hai fatto venire un'idea, provo a cambiare la cwd e poi vi faccio sapere!

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio da bit123 »

Niente, era un miraggio :)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6635
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: shell tricks!?

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2923
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: shell tricks!?

Messaggio 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?

bit123
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: dom 27 nov 2005, 16:26
Località: Catania
Contatta:

Re: shell tricks!?

Messaggio da bit123 »

Purtroppo dcraw estrae solo in destdir. L'unica soluzione sarebbe chiedere all'autore di aggiungere una opzione al programma.

Rispondi