IBDPhotoMerge

Si Windows sait gérer deux écrans depuis quelques années, cette gestion reste encore aujourd’hui relativement limitée. En particulier, il n’est possible de définir qu’une seule image d’arrière-plan. Pour avoir deux images différentes, il faut donc les combiner en une seule couvrant la définition combinée des deux écrans (par exemple, une image 3840×1200 pour deux écrans 1920×1200).

Il est donc simple de se monter un fond d’écran, mais par contre, pour en créer un bon nombre à utiliser avec un logiciel de changement automatique de papier-peint comme Wallpaper Rotator, ça devient vite long et ennuyeux… IBDPhotoMerge permet de fusionner automatiquement des images pour composer des papier-peints bi-écran, en redimensionnant automatiquement les images pour les adapter à la définition des écrans (les deux écrans doivent avoir la même définition).

Si les images n’ont pas le même ratio que l’écran (par exemple, image 4/3 pour un écran 16/10ème), IBDPhotoMerge centre automatiquement l’image sur l’écran et complète le vide avec des marges dont la couleur est adaptée en fonction des couleurs de l’image (la couleur de chaque marge est égale à la couleur moyenne de la bordure de l’image correspondant à la marge).

Licence : GNU GPL version 2

Documentation

Installation

  • décompressez l’archive,
  • copiez le contenu du répertoire src sur votre serveur web à l’emplacement de votre choix.

Configuration d’IBDPhotoMerge

Ouvrez le fichier merge.php avec un éditeur de texte pour modifier les variables de configuration :

  • $imgDir : chemin d’accès du répertoire contenant les images sources.
  • $imgDestDir : chemin d’accès du répertoire accueillant les images générées.
  • $w : largeur des écrans (en pixels).
  • $h : hauteur des écrans (en pixels).
  • $quality : qualité de la compression JPEG des images fusionnées (0-100).
  • $zoom : si vous voulez que les images plus petites que la taille d’un  écran soient agrandies, positionnez cette variable à true.
  • $frame : positionnez cette option à true pour que les images non zoomées  soient entourées d’un cadre de couleur unie. Sinon, les images seront entourées de 4 marges de couleurs différentes (la couleur de chaque marge est la couleur moyenne de la bordure de l’image du côté correspondant).
  • $mode : ce paramètre permet d’influencer la façon dont les images sont associées. Trois valeurs sont possibles :
    • slide : chaque image est associée à la suivante (ordre alphabétique).
      Chaque image sera donc utilisé deux fois, une fois comme image de gauche et une fois comme image de droite. En faisant défiler les papier-peints dans l’ordre de génération, on aura un effet de défilement vers la gauche.
    • half : les images de gauche et de droite sont décalées d’une demi-liste. Par exemple, si la source comporte 10 image, la 1 sera associée à la 6, la 2 sera associée à la 7, etc… Comme avec l’option slide, chaque image apparaitra une fois à gauche et une fois à droite.
    • toute autre valeur : les images seront groupées et fusionnées par paire, chaque image n’étant utilisée qu’une seule fois, soit à gauche, soit à  droite.

Utilisation

Une fois IBDPhotoMerge installé et configuré, déposez vos images source dans le répertoire source du serveur puis chargez le ficher merge.php via votre navigateur.

La page peut mettre longtemps à se charger, le chargement se termine une fois que toutes les images sont traitées.

Performances

Sur un processeur AMD Athlon 64 à 1 GHz, pour générer des fonds d’écran 2x1680x1050, les performances suivantes ont été mesurées :

  • 10.5s pour fusionner 10 images sources en 1680×1050
  • 10.6s pour fusionner 10 images sources en 1280×800 sans zoom
  • 45.5s pour fusionner 10 images sources en 1280×800 avec zoom
  • 77.1s pour fusionner 10 images sources en 2560×1600

Sur un compte Free.fr, pour générer des fonds d’écran 2x1280x800, les performances suivantes ont été mesurées :

  • 8.4s pour fusionner 10 images sources en 1280×800
  • 8.2s pour fusionner 10 images sources en 1024×640 sans zoom
  • 20.6s pour fusionner 10 images sources en 1024×640 avec zoom
  • 26.6s pour fusionner 10 images sources en 1440×900

Limitations

  • Pour obtenir les meilleurs résultats en terme de qualité, nous vous conseillons de redimensionner les images à l’aide d’un logiciel spécialisé avant de les déposer pour traitement.
  • Sur la plupart des hébergeurs PHP, la durée d’exécution des scripts PHP est limitée (de l’ordre de 30s). Si ces le cas sur votre hébergeur, il est préférable d’effectuer les opérations de redimensionnement avant de déposer les images sources sur le serveur.
  • Certains hébergeurs imposent des limites assez strictes au niveau de l’utilisation mémoire. Ceci limite la résolution maximale possible. Par exemple, chez Free.fr, le script est limité à 2x1440x900.

Historique

  • 12/05/2008, première version publique.

À faire

  • Interface graphique
  • Gestion d’écrans de définitions différentes
  • Option de correction du ratio des images (bordure/zoom/étirement)
  • Option pour avoir la même couleur de marge des deux côtés
  • Option pour forcer la couleur des marges
  • Sortir les paramètres dans un fichier de configuration