Eviter les bandes noires quand on redimensionne une image

Décembre 2016


Le problème


Il arrive qu'on veuille utiliser une image comme papier-peint de bureau ou comme économiseur d'écran.
Mais le problème est que les images ont parfois des dimensions très différentes de celles de l'écran.

Par exemple, avec cette image:


(Photo par rich115 en licence CC)

Une fois convertie en 1280x1024, il nous reste de grandes bandes noires. Dommage, non ?



Avec un petit script, on peut redimensionner l'image, mais en remplissant les bandes noires avec une partie de l'image elle-même.
Le résultat est plus sympathique:

Comment ?


1) Téléchargez et installez ImageMagick
(Sous Windows, c'est ImageMagick-6.x.x-x-Q16-windows-dll.exe qu'il faut télécharger.)

2) Créez le script nicefit.bat contenant:
@echo off  
@rem nicefit.bat - Nicely fit images to a resolution, replacing black stripes with colors matching the image and add a smooth shadow.  
@rem License: This batch is in public domain, but the author would appreciate the credits (http://sebsauvage.net).  
@rem Requirement: This program requires ImageMagick 6.x or later.  
@rem Syntax: nicefit.bat filename width height outputfilename  
@rem Example: nicefit.bat myimage.jpg 1280 1024 result.bmp  
SETLOCAL  
set filename=%1  
set width=%2  
set height=%3  
set outputfilename=%4  
convert ( ( %filename% -gravity Center -crop "80x80%%+0+0" -resize "%width%x" +repage -crop "%width%x%height%+0+0" -resize "x%height%" +repage -crop "%width%x%height%+0+0" -blur 0x40 +repage ) ( %filename% -resize %width%x%height% -matte -background black -shadow 100x16 ) -gravity Center -composite ) ( %filename% -resize %width%x%height% ) -composite -flatten +repage -strip -quality 80 %outputfilename%  




3) Convertissez l'image en utilisant le script:
nicefit photo.jpg 1280 1024 resultat.jpg


Et voilà !

Autres exemples



(Image par Rebecca_bexxi sous license CC)


(Image par peppers sous licence CC)


(Image par Immanuel Giel sous licence CC)

Note


Note: Ce script devrait être adaptable sans problème pour bash.

A voir également :

Ce document intitulé «  Eviter les bandes noires quand on redimensionne une image  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.