ImageMagick Fond d'écran DualScreen

Bonjour,

J'ai un bout de code :

mkdir <répertoire des images de sortie>
cd <répertoire des images de base>
timestamp=$(date +"%y%m%d")
for i in *;do convert "$i" "$i" +append ../<répertoire des images de sortie>/"$timestamp"_"$i".jpg;done


J'aimerai que le choix des deux images soit aléatoire (au lieu d'une seule image dupliquée aujourd'hui).

Le tout sans en oublier une seule...

Comment faut-il faire ?

1 réponse

  1. Contributeur
    Salut,

    Une solution pas très catholique pour les puristes du shell ;-))

    mkdir <répertoire des images de sortie>
    cd <répertoire des images de base>
    timestamp=$(date +"%y%m%d")
    fich=$(ls -1 | sort -R)
    for i in "${fich}";do convert "$i" "$i" +append ../<répertoire des images de sortie>/"$timestamp"_"$i".jpg;done

    1. J'ai ajouté :

      for i in *;do for j in *;do convert "$i" "$j" +append ../Sorties/"$timestamp"_"$i"_"$j".jpg;done;done
      
    2. Contributeur
      @Paullux_1erArf je n'avais pas tout bien compris à ton problème ;-(

      Mais je doute que ta nouvelle syntaxe fasse exactement ce à quoi tu aspires ;-\
    3. non, ça je me trouve avec un nombre de photos au carré de celui d'avant
    4. Contributeur
      Essaye ça :

      mkdir <répertoire des images de sortie>
      cd <répertoire des images de base>
      timestamp=$(date +"%y%m%d")
      A=(*)
      C=$(ls -1 | wc -l)

      for i in "${A[@]}";do convert "${i}" "${A[((C-1))]}" +append ../<répertoire des images de sortie>/"$timestamp"_"$i".jpg;((C--));done


      Ce n'est pas exactement de l'aléatoire. En fait on inverse juste la liste.
    5. J'ai essayé moi aussi, que penses-tu de ça :

      for i in *;do for j in *;do if (( RANDOM %2 )); then if (( RANDOM %2 )); then convert "$i" "$j" +append ../Sorties/"$timestamp"_"$i"_"$j".jpg;fi;fi;done;done


      ????

      C'est long en calcul, mais c'est aléatoire... et l'ensemble des images sont traitées...