Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642

    [script] rinomina e converte immagini

    salve a tutti

    tempo fa scrissi uno script molto molto semplice per rinominare svariate immagini, lo script funziona a dovere ma sarebbe interessante potere anche convertire le immagini in una estensione ben precisa, ad esempio da jpg a png.

    di fronte a questa nuova necessità ho apportato qualche modifica, fa il suo dovere ma, vista la mia scarsa dimestichezza, sono sicuro che si può ottimizzare qualcosa.

    codice:
    #!/bin/bash
    # script per rinominare immagini
    
    echo inserisci il percorso #path in cui si trovano le immagini
    read sorgente
    
    #estensione delle immagini da convertire
    echo inserisci estensione iniziale senza il punto
    read estensione
    
    #estensione delle immagini convertite
    echo inserisci estensione finale senza il punto
    read estensione1
    
    cifra=0
    
    for img in $(ls "$sorgente"/*."$estensione"); do
        convert "$img" "$img"."$estensione1"
    done
    
    for img in $(ls "$sorgente"/*.*."$estensione1"); do
        cifra=`expr $cifra + 1`
        mv "$img" "$sorgente"/"img_0$cifra"."$estensione1"
    done
    
    for img in $(ls "$sorgente"/*."$estensione"); do
        rm "$img"
    done
    
    exit 0
    come noterete è piuttosto banale, se avete qualche suggerimento per migliorarlo è ben accetto

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    7,691
    ma le rinomina solo o le converte (ad esempio formato jpg ---> png). Lo chiedo perchè vedo che usi "convert" che è un programma (mi pare faccia parte di imagemagick) per convertire immagini.

    P.S. doimnda inutile perchè c'è gia scritto nel titolo
    ... S'i' fosse Giorgio, com'i' sono e fui,
    torrei le donne giovani e leggiadre:
    le vecchie e laide lasserei altrui....
    Non mandatemi PVT, mi dimentico sempre di leggerli ... mandatemi e-mail, se è il caso

  3. #3
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642
    Originariamente inviato da mykol
    ma le rinomina solo o le converte (ad esempio formato jpg ---> png). Lo chiedo perchè vedo che usi "convert" che è un programma (mi pare faccia parte di imagemagick) per convertire immagini.

    P.S. doimnda inutile perchè c'è gia scritto nel titolo
    si lo script nasce anche con l'intento di convertire il formato delle immagini alla bisogna.

    usa, come hai giustamente notato, convert che fa parte di imagemagick, difatti una mia preoccupazione secondaria, visto che vorrei lo script più portabile possibile, è inserire un messaggio di errore nel caso il pacchetto non sia installato nel sistema.

    in che modo potrei verificarne l'installazione?

    avevo pensato inizialmente ad un ciclo if usando whereis ma sono sicuro che c'è una soluzione più pulita.

    grazie anticipatamente per le eventuali risposte

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  4. #4
    la prima cosa che mi viene in mente per fare il test di esistenza è questa:

    codice:
    if [[ -z  "$(convert --version 2> /dev/null)" ]]; then
      echo "non c'è";
    else
      echo "c'è";
    fi
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  5. #5
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642
    ti ringrazio molto greyfox per l'input, sto cercando di farlo quadrare all'interno dello script.

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  6. #6
    figurati
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  7. #7
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642
    grazie all'importantissimo aiuto di greyfox (che ringrazio ancora) sono arrivato a queste modifiche, in realtà il codice è identico ho usato solo qualche ciclo annidato.

    codice:
    #!/bin/bash
    # script per rinominare e convertire immagini
    
    echo "inserisci il percorso" #path in cui si trovano le immagini
    read sorgente
    
    #estensione delle immagini da convertire
    echo "inserisci estensione iniziale senza il punto"
    read estensione
    
    #estensione delle immagini convertite
    echo "inserisci estensione finale senza il punto"
    read estensione1
    
    cifra=0
    
    if [[ -z  "$(convert --version 2> /dev/null)" ]]
    then
      echo "il pacchetto imagemagick è necessario per la conversione"
      for img in $(ls "$sorgente"/*."$estensione1"); do
        cifra=`expr $cifra + 1`
        mv "$img" "$sorgente"/"img_0$cifra"."$estensione1"
      done
    else
      echo "rilevato convert, inizio conversione immagini"
      for img in $(ls "$sorgente"/*."$estensione"); do
        convert "$img" "$img"."$estensione1"
      done
      for img in $(ls "$sorgente"/*.*."$estensione1"); do
        cifra=`expr $cifra + 1`
        mv "$img" "$sorgente"/"img_0$cifra"."$estensione1"
      done
      for img in $(ls "$sorgente"/*."$estensione"); do
        rm "$img"
      done
    fi
    
    exit 0
    l'ho testato e pare funzionare correttamente in entrambi i casi, sia che imagemagick sia installato oppure no.

    naturalmente nel caso non lo fosse la conversione non può aver luogo e rimane la sola possibilità di rinominare le immagini.

    se avete qualche altro suggerimento/critica per migliorarlo dite pure

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    7,691
    ma convert con gli opportuni parametri non lo fa già da solo ?

    Non ne ho la certezza, ma mi ricordo che tempo fa avevo usato un programma da linea di comando (era mica mogrify ?) che permetteva con un unico comando, ad esempio, di modificare la risoluzione di tutte le immagini di una dir, ecc ...
    ... S'i' fosse Giorgio, com'i' sono e fui,
    torrei le donne giovani e leggiadre:
    le vecchie e laide lasserei altrui....
    Non mandatemi PVT, mi dimentico sempre di leggerli ... mandatemi e-mail, se è il caso

  9. #9
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642
    Originariamente inviato da mykol
    ma convert con gli opportuni parametri non lo fa già da solo ?

    Non ne ho la certezza, ma mi ricordo che tempo fa avevo usato un programma da linea di comando (era mica mogrify ?) che permetteva con un unico comando, ad esempio, di modificare la risoluzione di tutte le immagini di una dir, ecc ...
    non conosco molto bene mogrify, so che parte della suite di imagemagick ma non ho mai avuto l'occasione di usarlo.

    sarebbe interessante ritrovare queste istruzioni, anche se lo script nasce non con l'intento di fare resize di immagini quanto di convertirne il formato e di rinominarle.

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    7,691
    Trovata una bella guida ma non è quella che conoscevo io.

    Comunque, il comando sottostante fa proprio quello che vuoi.

    $ mogrify -format png *.gif[Invio]

    Converte i file che si trovano nella directory corrente e terminano con l'estensione .gif in file di tipo PNG, creando una copia degli stessi file con estensione .png.

    La guida tratta anche di convert e tante altre cose

    P.S. La guida è poi "Appunti di informatica Libera" dove c'è di tutto e di più ...
    ... S'i' fosse Giorgio, com'i' sono e fui,
    torrei le donne giovani e leggiadre:
    le vecchie e laide lasserei altrui....
    Non mandatemi PVT, mi dimentico sempre di leggerli ... mandatemi e-mail, se è il caso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.