Convolution Matrix

Tue 01 August 2006,

The website of the Bikini Test move to a new and most powerful server with GD2. Hurray, we can resize our pictures from PHP.

The first essay of resizing this pretty picture (of William White).
Original picture of William White
turns into a nightmare.
resized with GD2

The result isn’t really pretty. So I tried to apply some convolution matrix like : a Gaussian blur or emboss.

A Gaussian blur :
1  3 1
3 27 3
1  3 1
divisor : 43

Emboss :
1  1 -1
1 15 -1
1 -1 -1
divisor : 15
		

The result can be better but not perfect like flickr can. Bellow the emboss result :
PHP + emboss filter

Last try is to call ImageMagick with exec.

convert input.png -resize widthxheight -quality 90 output.jpg

And the result is really good.
resized with ImageMagick

The bad side of this is that the exec command is allowed everywhere (thanks to Azylog) and that you depend of the imagemagick installation to work. I should be only an alternative to GD.

And, of course, don’t miss the great William White Saturday the 7th of October 2006.

Le site du Bikini Test a changé d’hébergeur dernièrement et comme il y a enfin GD2 (la bibliothèque de manipulation d’image) et bien il est enfin possible de redimensionner via PHP leurs images.

Une belle image (depuis le site de William White (photo)) redimensionnée et hop, bof bof, le résultat n’est vraiment pas terrible.

Les premiers essais ont été d’appliquer des matrices de convolution sur l’image destination afin de réaliser des effets comme un flou (blur) ou emboss. Le résultat du flou, est peut-être un peu moins sale et celui du emboss donne un peu de relief. C’est peut-être mieux, mais loin des bons résultats que, par exemple, Flickr fournit.

Ultime solution, non mécontent d’en avoir appris un peu plus sur les matrices de convolution, faire appel à ImageMagick.

convert input.png -resize widthxheight -quality 90 output.jpg

Avec PHP, il faut passer par la fonction exec, malheureusement pas autorisée partout (vive Azylog, qui n’est pas pour autant le nouvel hébergeur du site de Bikini Test). C’est ce par quoi il faut passer pour obtenir un résultat “professionnel” lorsque l’on fait des miniatures avec PHP. Un peu dommage.

Et venez nombreux le samedi 7 octobre 2006 pour assister au concert de Monsieur William White.

Digg it!, so del.icio.us, blogmarks, reddit.