Historique d'ImageMagick
Je jure sur ma vie et sur l'amour que j'en ai que je ne vivrai jamais pour le bien d'un autre homme, ni ne demanderai à un autre homme de vivre pour le mien. -- John Galt dans « La Grève » (Atlas Shrugged), d'Ayn Rand
ImageMagick a commencé par une demande de mon supérieur chez DuPont, le Dr David Pensak, qui souhaitait afficher des images générées par ordinateur sur un moniteur capable de n'afficher que 256 couleurs uniques simultanément.
En 1987, les moniteurs capables d'afficher des images en couleurs réelles 24 bits étaient rares et assez coûteux. Il y avait une multitude de chimistes et de biologistes chez DuPont, mais très peu d'informaticiens avec qui échanger. Je me suis donc tourné vers Usenet pour obtenir de l'aide, et j'ai publié une demande d'algorithme pour réduire des images 24 bits à 256 couleurs. Paul Raveling de l'USC Information Sciences Institute m'a répondu, non seulement avec une solution, mais avec une solution déjà sous forme de code source et disponible sur le site FTP de l'USC. Au cours des années suivantes, j'ai eu de fréquentes occasions d'obtenir de l'aide pour d'autres problèmes d'informatique épineux rencontrés dans le cadre de mon travail chez DuPont. Je me suis finalement senti obligé de remercier pour l'aide reçue de la part des gens compétents d'Usenet. J'ai décidé de diffuser librement au monde les outils de traitement d'images que j'avais développés, afin que d'autres puissent bénéficier de mes efforts.
En 1990, il existait peu d'outils de traitement d'images disponibles gratuitement, je m'attendais donc à un accueil enthousiaste. Avant qu'une diffusion ne soit possible, le Dr Pensak a dû convaincre la haute direction de DuPont de céder ce qu'ils pouvaient percevoir comme une propriété intellectuelle précieuse. Je soupçonne qu'ils ont accepté simplement parce qu'ImageMagick n'avait pas de fondement chimique ou biologique, et qu'ils n'en comprenaient donc pas la valeur pour l'entreprise. Quoi qu'il en soit, ImageMagick ne serait pas disponible aujourd'hui sans le transfert du copyright par DuPont à ImageMagick Studio LLC. ImageMagick a été publié sur le groupe comp.archives d'Usenet le 1er août 1990.
Après la diffusion d'ImageMagick, j'ai reçu de temps à autre une demande d'amélioration, un rapport de bogue ou une contribution à la base de code source. Au milieu des années 90, j'ai publié l'aboutissement de ces efforts sous le nom d'ImageMagick 4.2.9. À l'époque, je pensais qu'ImageMagick était achevé. Il était utilisé par des milliers d'utilisateurs dans le monde entier, et il commençait même à apparaître dans le cadre d'un nouveau système d'exploitation distribué gratuitement appelé « Linux ».
La génération suivante d'ImageMagick, la version 5, a débuté lorsque Bob Friesenhahn m'a contacté et m'a suggéré d'améliorer l'interface de programmation d'applications afin que les utilisateurs puissent exploiter les algorithmes de traitement d'images depuis d'autres langages ou scripts. Bob a également écrit un wrapper C++ pour ImageMagick appelé Magick++, et a commencé à contribuer des améliorations telles que le chargeur de modules, l'identification automatique des fichiers et les suites de tests. Entre-temps, le projet a recueilli quelques autres contributeurs notables : Glenn Randers-Pehrson, William Radcliffe et Leonard Rosenthol. À ce moment-là, ImageMagick était utilisé par des dizaines de milliers d'utilisateurs, qui réagissaient avec mauvaise humeur lorsqu'une nouvelle version cassait un appel d'API ou un script existant. Les autres membres du groupe voulaient figer l'API et la ligne de commande, mais je sentais qu'ImageMagick n'était pas tout à fait ce que j'avais imaginé qu'il pourrait être. Bob et les autres ont créé un fork d'ImageMagick tandis que je continuais à développer ImageMagick.
Je n'ai pas travaillé seul longtemps. Anthony Thyssen m'a contacté au sujet de lacunes dans les programmes en ligne de commande d'ImageMagick. Il a souligné que la ligne de commande prêtait à confusion lorsqu'il s'agissait de plus d'une image. Il a suggéré une méthode ordonnée et bien définie pour traiter la ligne de commande, et c'est devenu ImageMagick version 6. Ses efforts sont détaillés sur ses pages Web, Examples of ImageMagick Usage. Je vous recommande vivement de parcourir son site. Il a illustré la puissance d'ImageMagick de façons dont moi-même j'ignorais qu'elles étaient possibles.
Un autre contributeur notable, Fred Weinhaus, met à disposition une multitude de scripts en ligne de commande qui réalisent des transformations géométriques, des flous, des accentuations, du détourage, de la suppression de bruit et des manipulations de couleurs. Glenn Randers-Pehrson est notre gourou du PNG et apporte d'autres contributions précieuses. Dirk Lemstra a apporté, et continue d'apporter, de nombreuses améliorations pour rendre ImageMagick plus robuste sous Windows et distribue un wrapper .NET, Magick.NET.
La conception d'ImageMagick est un processus évolutif, où les efforts de conception et de mise en œuvre s'influencent et se guident mutuellement vers de nouveaux progrès. Avec ImageMagick version 7, nous avons amélioré la conception en nous appuyant sur les leçons tirées de la mise en œuvre de la version 6. ImageMagick a été conçu à l'origine pour afficher des images RGB sur un serveur X Windows. Au fil du temps, nous avons étendu la prise en charge aux images RGBA, puis aux formats d'image CMYK et CMYKA. Avec ImageMagick version 7, nous étendons la prise en charge à des espaces colorimétriques arbitraires comportant un nombre arbitraire de canaux de pixels. De plus, ImageMagick 7 stocke les canaux de pixels sous forme de nombres à virgule flottante, permettant des valeurs hors bande (par exemple négatives) et réduisant les erreurs d'arrondi.
Cristy
Architecte principal d'ImageMagick