Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierinformatique général
  • ✇Korben
  • La Maison Blanche utilise l'IA pour transformer une opposante en "femme hystérique"
    Vous pensiez avoir tout vu avec les manipulations d'images ? Les générateurs de mèmes, les filtres rigolos, tout ça... Bon, on rigole bien entre potes. Sauf que là, c'est la Maison Blanche qui s'y met et tristement c'est pas pour faire du "lol". Je vous explique le délire. Jeudi dernier, l'administration Trump a voulu crâner sur les réseaux sociaux. Ils ont annoncé l'arrestation de plusieurs manifestants qui avaient perturbé un office religieux dimanche dernier à Cities Church (St. Paul). Ils pr

La Maison Blanche utilise l'IA pour transformer une opposante en "femme hystérique"

Par : Korben
23 janvier 2026 à 11:35

Vous pensiez avoir tout vu avec les manipulations d'images ? Les générateurs de mèmes, les filtres rigolos, tout ça... Bon, on rigole bien entre potes. Sauf que là, c'est la Maison Blanche qui s'y met et tristement c'est pas pour faire du "lol".

Je vous explique le délire. Jeudi dernier, l'administration Trump a voulu crâner sur les réseaux sociaux. Ils ont annoncé l'arrestation de plusieurs manifestants qui avaient perturbé un office religieux dimanche dernier à Cities Church (St. Paul). Ils protestaient contre un pasteur, David Easterwood, qui serait également le directeur par intérim de l'antenne locale de l'agence fédérale U.S. Immigration and Customs Enforcement (ICE).

Jusque-là, de la politique classique. Mais là où ça dérape sévère, c'est quand ils ont balancé la photo de l'une des personnes arrêtées. La dame en question s'appelle Nekima Levy Armstrong et c'est pas n'importe qui. Avocate des droits civils, ancienne présidente du chapitre de Minneapolis de la NAACP. Elle est une figure très respectée. Sur la photo originale de son arrestation, elle a un visage neutre. Digne.

Sauf que la Maison Blanche a trouvé ça trop "calme" sans doute. Alors ils ont diffusé une version de la photo manipulée numériquement pour la transformer complètement.

Résultat, sur l'image postée par le compte officiel @WhiteHouse, on voit Nekima Levy Armstrong en train de sangloter à chaudes larmes. Genre gros bébé qui chiale. Et c'est là que le venin se diffuse car ce n'est pas juste une modification esthétique.

C'est carrément une manipulation symbolique dégueulasse !

A gauche la photo IA, à droitela VRAIE photo

En faisant ça, ils activent un vieux levier bien rance : le stéréotype de la "Sapphire" ou de la " Angry Black Woman ". C'est un genre d'hyperbole qui trouve ses racines dans les représentations caricaturales du XIXe siècle (les fameux minstrel shows ) avant d'être codifié au XXe siècle.

L'idée c'est de présenter les femmes noires comme des êtres intrinsèquement hystériques, incapables de se contrôler, qui hurlent et chouinent pour un rien. C'est une technique de déshumanisation pure et simple. La Maison Blanche a transformé une opposante politique digne en caricature pleurnicharde pour lui ôter toute crédibilité.

Et quand les journalistes ont demandé des comptes, le service de presse de la Maison Blanche a renvoyé vers un post sur X de Kaelan Dorr (directeur adjoint de la communication) dont la réponse est glaciale : "L'application de la loi continuera. Les mèmes continueront." Hop. Circulez, y'a rien à voir. C'est assumé. Ils manipulent l'information, déforment la réalité pour servir un discours politique, et ils appellent ça un "mème".

Putain, que ces gens sont à vomir.

Le fond de l'histoire maintenant, c'est que ces gens demandaient justice pour Renee Good, une mère de famille abattue par un agent de l'ICE le 7 janvier dernier. L'administration invoque la légitime défense, mais des vidéos et des analyses contestent fermement cette version. Ce sont des vies brisées, des tragédies réelles et en face, on a un gouvernement qui s'amuse avec des outils IA pour transformer la douleur et la dignité en "blague" raciste.

Y'a vraiment de quoi se taper la tête contre les murs. Ça me rappelle un peu les dérives qu'on voit avec les IA qui manipulent les émotions pour du business ou de la politique. Cette technologie devrait faire avancer la science et booster la productivité mais pour l'instant, dans les mains de certains, ça sert surtout à industrialiser la haine et à maquiller le mensonge. Comme le dit souvent Mikko Hyppönen, si c'est intelligent, c'est vulnérable et là c'est pas de l'IoT, mais notre perception de la réalité déjà bien fragilisée depuis quelques années, qui est visée.

Voilà... quand la technologie sert à fabriquer de la désinformation d'État, il est grand temps, je pense, de se réveiller. Donc restez aux aguets les amis, parce que les fascistes, eux la vérité, ils s'en tamponnent le coquillard.

Source

  • ✇Korben
  • Text Behind Image - L'effet design qui cartonne sur Insta, sans ouvrir Photoshop
    Vous voyez ces photos stylées sur Instagram où le texte semble passer derrière la personne, comme si le gros "FASHION" ou "WORKOUT" était vraiment dans la scène ? C'est l'effet "text behind image" et c'est clairement le truc graphique qui fait super pro en ce moment. Le problème c'est que pour obtenir ce rendu, faut normalement se taper Photoshop, maîtriser les calques, le détourage, les masques... Bref, perdre une demi-heure sur un truc qui devrait prendre 30 secondes. Et comme vous êtes des ge

Text Behind Image - L'effet design qui cartonne sur Insta, sans ouvrir Photoshop

Par : Korben
27 décembre 2025 à 17:54

Vous voyez ces photos stylées sur Instagram où le texte semble passer derrière la personne, comme si le gros "FASHION" ou "WORKOUT" était vraiment dans la scène ? C'est l'effet "text behind image" et c'est clairement le truc graphique qui fait super pro en ce moment.

Le problème c'est que pour obtenir ce rendu, faut normalement se taper Photoshop, maîtriser les calques, le détourage, les masques... Bref, perdre une demi-heure sur un truc qui devrait prendre 30 secondes. Et comme vous êtes des gens occupés (contrairement à moi qui passe ma vie à tester des outils), voici la solution.

C'est un site gratuit qui règle tout ça et qui s'appelle Text Behind Image . Vous uploadez votre photo (jusqu'à 10 Mo), l'IA détecte automatiquement le sujet (une personne, un objet, peu importe), vous tapez votre texte, et le site se débrouille pour le placer pile poil derrière. Ça prend quelques secondes de traitement, pas besoin de détourer quoi que ce soit vous-mêmes.

L'interface propose pas mal d'options de personnalisation... Vous pouvez choisir la police, jouer avec la taille, la couleur, l'opacité, la rotation, ajouter des contours... Et surtout, vous voyez le résultat en temps réel, donc vous pouvez repositionner le texte en glisser-déposer jusqu'à ce que ça rende nickel.

Et le top du top, c'est que c'est gratuit, sans limite, sans inscription, et vous téléchargez votre image en haute résolution sans filigrane. J'ai vérifié et y'a même pas de petit "Made with..." planqué dans un coin. C'est assez rare pour un outil en ligne de ce genre alors je tiens à vous le signaler !

Bon après si votre photo est ultra complexe avec 36 personnes et des éléments qui se chevauchent, l'IA va potentiellement galérer à détourer correctement, mais pour une photo classique avec un sujet bien visible sur un fond pas trop chargé, ça marche vraiment bien.

Bref, si vous faites du contenu pour les réseaux, des miniatures YouTube, ou même juste des visuels fun pour votre pote qui fait de la muscu, c'est le genre d'outil à bookmarker direct. En 30 secondes vous aurez un rendu qui vous aurait pris 20 minutes sur Photoshop.

  • ✇Korben
  • Spiral Betty transforme vos photos en spirales hypnotiques
    Vous connaissez ces dessins où une seule ligne continue forme un visage ou un portrait ? Hé bien c’est exactement ce que fait Spiral Betty , un petit outil en ligne gratuit qui convertit n’importe quelle photo en spirale artistique. Vous uploadez une image, vous la cadrez dans un cercle, et l’outil génère une spirale unique dont l’épaisseur varie pour reproduire les contrastes de votre photo. Ça fait donc une seule ligne qui part du centre et s’enroule jusqu’au bord, avec des variations d’épaiss

Spiral Betty transforme vos photos en spirales hypnotiques

Par : Korben
27 novembre 2025 à 10:48

Vous connaissez ces dessins où une seule ligne continue forme un visage ou un portrait ? Hé bien c’est exactement ce que fait Spiral Betty , un petit outil en ligne gratuit qui convertit n’importe quelle photo en spirale artistique.

Vous uploadez une image, vous la cadrez dans un cercle, et l’outil génère une spirale unique dont l’épaisseur varie pour reproduire les contrastes de votre photo. Ça fait donc une seule ligne qui part du centre et s’enroule jusqu’au bord, avec des variations d’épaisseur qui font apparaître votre image comme par magie.

L’idée est en fait inspirée d’une technique du 17ème siècle quand Claude Mellan , un peintre et graveur français, avait créé une œuvre célèbre appelée “ Sudarium of Saint Veronica ” représentant le visage du Christ avec une seule ligne en spirale partant de la pointe du nez. Spiral Betty démocratise donc cette technique et vous permet de faire pareil avec la tête de votre chat, votre tronche ou celle de belle-maman.

Pour que ça rende bien, faut quand même respecter quelques règles. L’image doit être simple avec un bon contraste, pas trop de détails fins, et idéalement un gros plan de visage (humain ou animal) qui rentre bien dans un cercle. Si vous balancez une photo de groupe ou un paysage chargé, le résultat sera illisible.

Une fois votre spirale générée, vous pouvez ajuster le nombre d’anneaux avec un curseur. Plus y’a de spirales, plus y’a de détails… mais aussi plus c’est fin à découper si vous voulez en faire quelque chose de physique. D’ailleurs, pas mal de gens utilisent ça avec des machines de découpe type Cricut pour faire des stickers en vinyle ou des décorations.

Et justement, ça ouvre des possibilités sympas niveau DIY car on peut imaginer découper ça au laser, l’imprimer en 3D en relief, en faire des dessous de verre, des cadres déco…etc. Le format SVG que génère l’outil se prête bien à ce genre de bidouilles.

Voilà, le site est gratuit et y’a aussi des apps mobiles si vous préférez faire ça sur votre téléphone.

Merci à Bot_0x pour l’info !

  • ✇Korben
  • Itoa - Pour convertir une image en ASCII Art
    Vous avez un iPhone qui prend des photos 48 mégapixels, un écran Retina qui affiche 254 pixels par pouce, et des GPU qui font tourner des jeux en 4K mais ce que vous n’avez pas c’est Itoa , un outil web qui fait exactement l’inverse puisqu’il transforme vos images haute-définition en une grille de caractères ASCII monochrome / couleur de 10 symboles maximum (Par exemple : .:-=+*#%@). Car l’ASCII art, c’est littéralement la mise à mort volontaire de l’image. Vous prenez quelque chose qui a besoi

Itoa - Pour convertir une image en ASCII Art

Par : Korben
19 novembre 2025 à 09:16

Vous avez un iPhone qui prend des photos 48 mégapixels, un écran Retina qui affiche 254 pixels par pouce, et des GPU qui font tourner des jeux en 4K mais ce que vous n’avez pas c’est Itoa , un outil web qui fait exactement l’inverse puisqu’il transforme vos images haute-définition en une grille de caractères ASCII monochrome / couleur de 10 symboles maximum (Par exemple : .:-=+*#%@).

Car l’ASCII art, c’est littéralement la mise à mort volontaire de l’image. Vous prenez quelque chose qui a besoin de millions de pixels pour exister et vous le réduisez à une poignée de caractères typographiques et en 2025, ça continue !

Sur que itoa (ça veut dire “image to ascii art”, au fait) fait ça très bien ! C’est donc, vous l’aurez compris, un convertisseur image-vers-ASCII codé en React et Vite qui tourne directement dans votre navigateur. Vous glissez dessus une image JPG, PNG ou GIF, et hop, l’outil vous la transforme en grille de caractères.

Deux modes sont dispo : monochrome pur et dur, ou couleur où chaque caractère hérite de la teinte du pixel d’origine. Vous pouvez aussi contrôler la taille de sortie (petit, moyen, grand) et exporter le résultat en PNG si vous voulez le partager ou l’imprimer.

Techniquement, itoa utilise l’API Canvas HTML5 pour analyser votre image. Ensuite, l’image est redimensionnée en gardant son ratio, puis chaque pixel est analysé. Pour le mode monochrome, l’algorithme calcule la luminance et ensuite l’outil mappe la valeur sur une échelle de caractères allant du plus clair (.) au plus foncé (@). Et pour le mode couleur, chaque pixel conserve sa couleur RGB d’origine via des balises HTML.

Bien sûr, itoa n’est pas le seul convertisseur ASCII du monde. Y’a pas exemple ManyTools.org qui fait le job depuis des années, Folge.me avec son interface moderne et ses options couleur, ou encore ASCII-Art-Generator.org qui peut exporter en SVG.

Bref, si vous aimez la nostalgie tech ou si vous voulez illustrer des .txt, c’est l’outil qu’il vous faut !

A découvrir ici !

  • ✇Korben
  • WebP / AVIF Image Converter - L'extension Firefox qui sauve vos images dans le bon format
    Vous téléchargez une image sur le web et vous vous retrouvez avec un fichier WebP ou AVIF que votre logiciel de retouche refuse d’ouvrir ? Vous vouliez juste une image en JPG ou PNG normale quoi, mais ce foutu site vous force à récupérer un format trop récent pour votre logiciel graphique préféré, genre Photoshop. C’est la lose ! Heureusement, voici WebP / Avif image converter , une extension Firefox développée par Nullbrains qui règle ce souci en un clic droit. L’idée est simple, vous faites un

WebP / AVIF Image Converter - L'extension Firefox qui sauve vos images dans le bon format

Par : Korben
1 octobre 2025 à 14:30

Vous téléchargez une image sur le web et vous vous retrouvez avec un fichier WebP ou AVIF que votre logiciel de retouche refuse d’ouvrir ? Vous vouliez juste une image en JPG ou PNG normale quoi, mais ce foutu site vous force à récupérer un format trop récent pour votre logiciel graphique préféré, genre Photoshop. C’est la lose !

Heureusement, voici WebP / Avif image converter , une extension Firefox développée par Nullbrains qui règle ce souci en un clic droit. L’idée est simple, vous faites un clic droit sur n’importe quelle image WebP ou AVIF, vous choisissez “Convert and save image” dans le menu contextuel, et l’extension convertit automatiquement l’image en JPG ou PNG avant de l’enregistrer sur votre disque.

L’extension propose des réglages avancés pour la qualité de l’image et la conversion. Vous pouvez configurer l’emplacement de téléchargement et le nom du fichier. Elle supporte également d’autres types d’images au-delà de WebP et AVIF et les permissions demandées sont assez standards : stockage, téléchargements, menus contextuels, et accès à toutes les URLs pour pouvoir convertir les images de n’importe quel site.

Malgré ses avantages, WebP a une compatibilité limitée. Bien que les navigateurs modernes comme Chrome, Firefox et Edge le supportent, certains logiciels et anciens navigateurs ne le prennent pas en charge. Et pour AVIF, c’est encore pire puisque le format est encore plus récent.

D’ailleurs, ce format mérite qu’on s’y attarde deux secondes. C’est celui que j’utilise ici sur mon site car AVIF combine une qualité d’image exceptionnelle avec des fichiers ultra-légers. Publié en 2019 par l’Alliance for Open Media, il compresse 30% mieux que WebP et jusqu’à 50% mieux que JPEG. Et tous les navigateurs modernes le supportent ! Même WordPress a même ajouté le support AVIF nativement.

Mais bon, même si tous ces nouveaux formats sont très cools, si vous en avez marre de jongler avec des convertisseurs en ligne qui vous limitent à 5 images par jour, cette extension Firefox fera le boulot discrètement. Un clic droit, une conversion, et vous avez votre JPG ou PNG à l’ancienne, prêt à l’emploi

Merci à Lorenper pour le partage !

  • ✇LinuxFr.org : les dépêches
  • Aeryth : Intégrer une AppImage dans un paquet et le bureau
    Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman. lien nᵒ 1 : DépôtPourquoi Aeryth ? Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis : Intégration bureau (menus, icônes) absente au sein de l'environnement. Mises à jour invisibles pour le gestionnaire de paquets. Aeryth règle ces points 

Aeryth : Intégrer une AppImage dans un paquet et le bureau

Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman.

Pourquoi Aeryth ?

Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis :

  1. Intégration bureau (menus, icônes) absente au sein de l'environnement.
  2. Mises à jour invisibles pour le gestionnaire de paquets.

Aeryth règle ces points : il transforme toute AppImage en véritable paquet Debian (.deb) ou Arch (.tar.zst) prêt à être executé, et offre des options d'intégration d'un AppImage complet ou extrait au sein du paquet. 🤝

La documentation est très explicite sur le dépôt git sur GitLab, l'outil peut être au choix totalement ou partiellement interactif, ou 100% CLI utilisable des arguments et intégrable. 🙂

Il est en outre pensé multi-platforme, avec une gestion chroot et deboostrap pour pouvoir générer des paquets deb ou archlinux sur les deux familles de distributions, il est même possible de forcer le chroot pour ne pas devoir "polluer" la distribution actuellement utilisée même si elle peut générer nativement les paquets.

Il est pensé pour s'adapter à des utilisateurs néophytes ou confirmés. 😉


Fonctions principales

Fonction Description
Double cible Génère un paquet .deb ou .tar.zst
Multilingue Interface interactive : FR · EN · ES · IT · DE
Respect FHS Copie l’AppImage sous /opt/<app>/, wrapper dans /usr/bin
Licence GPL v3

Installation rapide

git clone https://gitlab.com/pepinature/aeryth.git
cd aeryth
chmod +x aeryth.sh

Feuille de route

  • Détection automatique des nouvelles versions AppImage.
  • CI : tests sur Debian 12, Ubuntu 24.04, Arch stable.

Ressources


Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Korben
  • Comment corriger la balance des couleurs dans les images IA - 3 solutions pratiques
    Alors là, je sais pas si vous avez remarqué mais depuis quelques mois, ChatGPT nous sort systématiquement des images avec une espèce de filtre jaune/sépia dégueulasse. Genre on dirait que toutes vos créations ont été plongées dans un bain de café froid. Je génère pas mal d’images pour mes articles et cette teinte jaunâtre, ça me rend fou. Au début je pensais que c’était moi qui faisais n’importe quoi avec mes prompts, mais en fait non. Après avoir fouillé un peu partout sur le web, j’ai découver

Comment corriger la balance des couleurs dans les images IA - 3 solutions pratiques

Par : Korben
8 juillet 2025 à 19:07

Alors là, je sais pas si vous avez remarqué mais depuis quelques mois, ChatGPT nous sort systématiquement des images avec une espèce de filtre jaune/sépia dégueulasse. Genre on dirait que toutes vos créations ont été plongées dans un bain de café froid.

Je génère pas mal d’images pour mes articles et cette teinte jaunâtre, ça me rend fou. Au début je pensais que c’était moi qui faisais n’importe quoi avec mes prompts, mais en fait non. Après avoir fouillé un peu partout sur le web, j’ai découvert que c’est un problème super répandu et que la communauté entière galère avec ça depuis novembre dernier quand ChatGPT Image est sorti.

  • ✇LinuxFr.org : les dépêches
  • img, le cache d’images sur LinuxFr.org
    Le site LinuxFr.org utilise divers logiciels libres pour son fonctionnement et ses services : une large majorité provient de projets tiers (Debian, MariaDB, Redis - version d’avant le changement de licence, nginx, Postfix, conteneurs LXC et Docker, Ruby On Rails, Sympa, etc.) et d’autres composants sont développés pour nos propres besoins. Cette dernière catégorie comprend le code principal du site web en Ruby On Rails, et principalement 5 services autour : le cache d’images img, la tribune boar

img, le cache d’images sur LinuxFr.org

Le site LinuxFr.org utilise divers logiciels libres pour son fonctionnement et ses services : une large majorité provient de projets tiers (Debian, MariaDB, Redis - version d’avant le changement de licence, nginx, Postfix, conteneurs LXC et Docker, Ruby On Rails, Sympa, etc.) et d’autres composants sont développés pour nos propres besoins. Cette dernière catégorie comprend le code principal du site web en Ruby On Rails, et principalement 5 services autour : le cache d’images img, la tribune board, le convertisseur EPUB 3 epub, le partageur sur les réseaux sociaux share et le convertisseur LaTeX vers SVG svg. Cette dépêche va s’intéresser à img, un code sous AGPLv3.

Elle est née d’une envie personnelle d’expliquer, documenter et montrer ce qui a été fait sur le cache d’images de LinuxFr.org, complétée d’une demande d’un « article technique sur le fonctionnement de ce cache, les choix techniques qui ont été faits, les erreurs commises donc à éviter… ».

    Sommaire

    Des images sur le site

    LinuxFr.org vous permet d’utiliser des images externes dans les contenus et commentaires du site. Ces images sont incluses en syntaxe markdown avec ![description textuelle](adresse "titre optionnel") (soit en saisissant directement du Markdown, soit en cliquant sur l’icône d’ajout d’image dans l’éditeur). Profitons-en pour rappeler que pour utiliser une image sur LinuxFr.org, vous devez vous assurer de respecter sa licence.

    Nous vous encourageons donc à utiliser des images sous licence libre et à citer les auteurs (c’est même obligatoire pour les licences CC-by et CC-by-sa). Cette citation est tirée de la dépêche d’annonce Un nouveau reverse-proxy cache pour les images externes sur LinuxFr.org de 2012.

    Il est aussi recommandé de mettre une vraie description textuelle, qui finira dans l’attribut alt de la balise img utilisée pour l’accessibilité ou si l’image ne peut être chargée. Il peut être utile de lui donner un titre qui apparaîtra l’autre du survol de l’image à la souris par exemple.

    Exemple :

    ![Logo LinuxFr.org](https://linuxfr.org/images/logos/linuxfr2_classic_back.png "L’actualité du logiciel libre et des sujets voisins (DIY, Open Hardware, Open Data, les Communs, etc.), sur un site francophone contributif géré par une équipe bénévole par et pour des libristes enthousiastes.")

    Logo LinuxFr.org

    Buts du cache d’images

    Les raisons évoquées à la mise en place de img (sans ordre particulier) :

    • la sécurité : si une image externe n’est servie qu’en HTTP (en clair donc) et est appelée au milieu d’une page LinuxFr.org elle-même servie en HTTPS, alors le navigateur va râler sur le mélange des genres. img permet de servir toutes les images identiquement (par exemple en HTTPS, et avec le certificat de LinuxFr.org, via le serveur frontal devant img). À noter que ces images ne sont pas servies directement depuis le domaine principal linuxfr.org mais depuis un sous-domaine img.linuxfr.org pour éviter que le JavaScript embarqué dans les images en SVG puisse servir de vecteur d’attaque contre le site.
    • la protection de la vie privée des personnes visitant LinuxFr.org : seul LinuxFr.org voit les informations en provenance de leur navigateur (dont l’adresse IP). Les équipes d’administration des différents sites ne les voient plus (elles voient l’adresse IP du serveur LinuxFr.org).
    • une meilleure gestion du trafic : au lieu d’envoyer tout notre public chercher individuellement chaque image, LinuxFr.org la récupère une fois et la rend disponible. Si le site externe fournissant l’image est un serveur à faibles ressources (liaison ADSL avec faible débit montant par exemple), la mise en cache permet de garantir qu’il ne recevra qu’un faible volume de requêtes (la récupération se faisant initialement toutes les 10 min tant que des demandes arrivent, le cache expirant après 10 min).
    • la conservation des images : les images incluses depuis des sites externes peuvent ne plus être disponibles (l’entité a disparu, le serveur a été arrêté, le domaine a été perdu, l’adresse a changé, etc.). Nous avons donc un mécanisme de cache pour que nous puissions continuer à servir une image même si elle devient indisponible.

    Parmi les conséquences de cette implémentation initiale, on peut citer :

    • si le fichier est changé sur le serveur distant (modifié, converti dans un autre format), l’ancien fichier est servi jusqu’à la prochaine récupération et le nouveau fichier ne sera servi qu’à la prochaine récupération ;
    • si le fichier est supprimé sur le serveur distant, l’image ne sera plus servie après la prochaine récupération (car le serveur a répondu que l’image n’existe plus) ;
    • il est possible de modifier l’image au passage : les images d’avatar sont retaillées pour une hauteur de 64 pixels par exemple ;
    • il est possible de bloquer des images : les images problématiques (pub/spam, contenus pour adultes, images injurieuses, etc.) peuvent être bloquées et ne plus être servies ;
    • par ailleurs img n’accepte de servir que les images connues de LinuxFr.org dont le poids fait moins de 5 MiB.

    À l’utilisation

    Lors de l’écriture d’un commentaire ou d’un contenu sur LinuxFr.org, une personne va ajouter une image externe via la syntaxe Markdown, par exemple ![Logo LinuxFr.org](https://linuxfr.org/images/logos/linuxfr2_classic_back.png)

    Ce qui donne à l’affichage :

    Logo LinuxFr.org

    Et côté code HTML :

    <img src="https://linuxfr.org/images/logos/linuxfr2_classic_back.png" alt="Logo LinuxFr.org">

    OK, mauvais exemple ce n’est pas une image externe, puisqu’elle est hébergée sur LinuxFr.org justement. Prenons un autre exemple ![April - Campagne d’adhésion](https://april.org/campagne-2024/relais/banniereCampagneApril.svg).

    Ce qui donne à l’affichage :

    April - Campagne d’adhésion

    Et côté code :

    <img src="//img.linuxfr.org/img/68747470733a2f2f617072696c2e6f72672f63616d7061676e652d323032342f72656c6169732f62616e6e6965726543616d7061676e65417072696c2e737667/banniereCampagneApril.svg" alt="April - Campagne d’adhésion" title="Source : https://april.org/campagne-2024/relais/banniereCampagneApril.svg">

    Donc on sert l’image via le sous-domaine img.linuxfr.org. On peut aussi noter le titre rempli automatiquement avec la source. Expliquons la nouvelle adresse :

    • // on sert en https si la page est en https et en http si la page est en http (c’est plutôt un oubli qu’autre chose, vu que le site est uniquement en https)
    • img.linuxfr.org on sert depuis un sous-domaine du site
    • 68747470733a2f2f617072696c2e6f72672f63616d7061676e652d323032342f72656c6169732f62616e6e6965726543616d7061676e65417072696c2e737667 est la version en texte-vers-hexadécimal de l’adresse d’origine (68 pour h, 74 pour t (deux fois), 70 pour p, etc.). Il existe des sites et des outils en local pour faire cette conversion, mais cela ne concerne pas la simple utilisation du site.
    • banniereCampagneApril.svg on met à la fin le nom du fichier pour être sympa si vous voulez sauver l’image en local avec un nom plus explicite

    Ceci était le cas où tout se passe bien, comme prévu, comme le voulait la personne qui voulait utiliser une image externe.

    Voyons maintenant ce qui se passe dans le cas pas si rare où la personne a donné une adresse d’image invalide, une adresse ne pointant pas vers une image vers autre chose (cas extrêmement fréquent), une image trop grosse (plus de 5 MiB), etc. Il se passe la même chose côté code, mais côté affichage, pas d’image, et on voit seulement le texte alternatif dans son navigateur. Dans les coulisses, img a répondu 404, cette adresse n’est pas disponible.

    On note donc qu’une même image servie en http:// ou en https:// aura une adresse convertie en hexadécimal différente, donc sera vue comme une autre image par img. Même chose si le serveur externe accepte des adresses sans tenir compte de la casse, ou si on rajoute des paramètres dans l’adresse comme « ?mot_magique=merci ».

    Côté code Ruby on Rails

    Un contenu ou commentaire est en cours de création et une image externe a été mentionnée. Le code de gestion des images va vérifier que l’image est déclarée dans redis (créer l’entrée img/<adresse> avec adresse l’adresse de l’image en clair, ajouter un champ created_at avec l’horodatage, ajouter l’adresse dans la liste des dernières images img/latest) et renvoyer l’adresse via img.

    Le code peut aussi modifier le champ status d’une image dans redis pour mettre ou enlever un blocage (valeur Blocked) par l’équipe du site, et l’ajouter/enlever de la liste des images bloquées img/blocked.

    Côté img

    Les schémas dans la documentation du service img explicitent les possibilités et les comportements.

    Il est possible de faire un GET /status et on obtient une réponse HTTP 200 avec un contenu OK. C’est utile pour tester que le service est lancé (depuis l’intérieur de la plateforme).

    Sinon, on peut envoyer des requêtes GET /img/<adresse_en_hexa> or GET /img/<adresse_en_hexa>/<nom_de_fichier> pour les images, et GET /avatars/<adresse_en_hexa> ou GET /avatars/<adresse_en_hexa>/<nom_de_fichier> pour les avatars.

    En se limitant aux requêtes légitimes, le comportement de img est le suivant :

    • l’adresse demandée a été précédemment déclarée (dans redis par la partie code Ruby On Rails) sinon il répond 404 ;
    • l’adresse demandée n’est pas bloquée par l’équipe du site sinon il répond 404 ;
    • l’adresse est déjà dans le cache disque, alors il renvoie l’image ;
    • l’adresse n’est pas dans le cache disque et la récupération échoue, il renvoie 404 (et va noter temporairement l’échec dans img/err/<uri>) ;
    • l’adresse n’est pas dans le cache disque et la récupération a lieu (noté temporairement dans img/update/<uri>): si le serveur répond positivement à la demande, avec une image comme attendue, pas trop volumineuse, alors on la met en cache disque. Si c’est un avatar, on peut retailler l’image. On aura des champs supplémentaires stockés type avec la nature de l’image (en-tête Content-Type), checksum avec un hachage SHA1 et etag avec la valeur ETag (entête ETag).

    Le cache est rafraîchi régulièrement.

    img est un binaire statique en Go. Il offre des options pour définir le couple adresse:port d’écoute, pour définir où envoyer les logs, pour se connecter à une base redis, pour définir le répertoire du cache disque, pour choisir le User-Agent qui sera utilisé pour les requêtes externes, pour définir l’avatar qui sera renvoyé par défaut, et la possibilité de le lancer uniquement en mode audit interne pour vérifier la cohérence et l’état des données et des fichiers.

    Dans les logs on va trouver des infos comme :

    2024/10/20 20:39:24 Status code of http://example.invalid/exemple1.png is: 404
    2024/10/20 20:39:24 Fail to fetch http://example.invalid/exemple1.png (serve from disk cache anyway)
    2024/10/20 20:44:12 Fetch http://example.invalid/exemple2.png (image/png) (ETag: "be5e-4dba836030980")
    2024/10/20 20:44:12 http://example.invalid/exemple3.png has an invalid content-type: text/html;charset=UTF-8
    2024/10/20 20:44:12 Fail to fetch http://example.invalid/exemple3.png (serve from disk cache anyway)
    

    Ici l’exemple 1 est déjà en cache et peut être servi même si on échoue à le récupérer à ce moment-là. L’exemple 2 vient d’être récupéré. L’exemple 3 a désormais une adresse invalide (qui renvoie une page HTML au lieu d’une image) mais il existe en cache une image précédemment récupérée.

    Historique

    img a été créé par Bruno Michel en 2012. Adrien Kunysz amène 5 commits en novembre 2013, mais globalement Bruno est le seul à travailler dessus (43 commits) jusqu’en 2018. img fait le job et il n’est pas besoin d’y retoucher trop souvent.

    En 2022, Bruno quitte l’équipe du site, et par ailleurs il y a des montées de versions et des migrations à faire sur les serveurs de LinuxFr.org, et img fait partie des services à reprendre en main. Ce qui veut dire le comprendre, le documenter et au besoin l’améliorer.

    Bref je décide de me plonger dans img (2022-2024), car a priori ce n’est pas le composant le plus compliqué du site (il vit dans son coin, il offre une interface, c’est du Go, donc on a un binaire seulement à gérer).

    Étape 1 : je vais commencer par ajouter un Dockerfile permettant de recompiler img dans un conteneur, en contrôlant la version de Go utilisée, en effectuant une détection d’éventuelles vulnérabilités au passage avec govulncheck. Cela me permet de valider que l’on sait produire le binaire d’une part, et que l’on offre à tout le monde la possibilité de contribuer facilement sur ce composant.

    Étape 2 : je vais tester le composant pour vérifier qu’il fonctionne comme je le pense et qu’il fait ce qu’on attend de lui. Je vais ajouter une suite des tests qui couvrent les différentes fonctionnalités et les vérifient en IPv4 et en IPv6, en HTTP 1.1 et en HTTP 2.0. Les tests utilisent Hurl et docker-compose (avec des images redis et nginx), et encore une fois l’idée de donner la possibilité de contribuer facilement. Ils comprennent des tests de types de contenus non pris en charge, le test de la limite à 5 MiB, différents types d’images, le test de vie, des appels erronés (mauvais chemin, mauvaise méthode, etc). Le choix des cas de tests est basé sur le trafic réellement constaté sur le serveur de production, sur les différents cas dans le code et un peu sur l’expérience du testeur.

    Étape 2,5 : l’avatar par défaut renvoie sur le site de production, y compris sur les tests en développement en local et sur le serveur de test du site. J’en profite pour ajouter un paramètre pour cela (et cela permettra de passer du PNG au SVG par défaut).

    Étape 3 : encore une fois essayons de simplifier la vie d’hypothétiques personnes contributrices. Une petite modification pour que hurl et redis soient fournis via docker-compose et ne soient plus nécessaires sur le poste de développement.

    Étape 4 : il est temps de documenter plus le fonctionnement. J’avais déjà décrit les infos stockées dans redis, mais pour comprendre le système de cache, autant fournir des diagrammes pour illustrer ce qui se passe lors d’une requête et comment on passe d’un état à un autre. C’est aussi l’occasion de compléter la suite de tests en ajoutant des tests avant et après expiration du cache, histoire de pouvoir documenter ces cas précis.

    Étape 5 : en cas d’échec de récupération, une image était indisponible jusqu’à la prochaine récupération (donc potentiellement pendant 10 min). Autant servir l’ancienne version en cache lorsque cela se produit : je modifie le code et les tests en conséquence.

    Étape 6 : je sais que certaines images ont été perdues, que des adresses d’images ont toujours été erronées, que des contenus et commentaires ont été supprimés et qu’il n’y a donc plus lieu de garder les images associées. Je décide d’implémenter dans img un audit interne qui indiquera si des anomalies sont présentes dans redis, si des images sont indisponibles ou si des entrées dans le cache disque ne correspondent plus à aucune image. Et j’ajoute cet audit dans la suite de tests.

    Étape 7 : j’écris une dépêche pour parler de tout cela.

    Évolutions récentes

    Dockerfile

    Le fichier Dockerfile du projet permet :

    • de partir d’une image officielle Go d’une version donnée, basée sur une distribution minimale Alpine
    • de l’utiliser pendant la construction en prenant la liste des dépendances, en les téléchargeant, en prenant l’unique fichier source img.go et en le compilant statiquement avec l’option pour retirer les chemins de compilation
    • de rechercher les éventuelles vulnérabilités avec govulncheck
    • d’ajouter le paquet tzdata pour avoir les définitions fuseaux horaires (nécessaire pour les conversions de/vers GMT pour les entêtes type Last-Modified).
    • de repartir d’une base Alpine en y mettant les définitions de fuseaux horaires et le binaire issus de la partie construction, de déclarer le port d’écoute et de lancer le binaire avec des variables disposant de valeurs par défaut.

    La suite de tests

    Pour l’utiliser, c’est assez simple, il faut aller dans le répertoire tests et lancer un docker-compose up --build, qui va produire le conteneur contenant img, et démarrer le redis et le nginx préconfigurés pour les tests. Si tout va bien, on attend, et au bout d’un moment il s’affiche :

    linuxfr.org-img-test_1  | All tests look good!
    tests_linuxfr.org-img-test_1 exited with code 0
    

    Rentrons un peu dans les détails.

    D’abord un fichier docker-compose.yaml qui décrit le réseau IPv4/IPv6 utilisé pour les tests, l’image redis qui sera utilisée (stockage géré par docker), l’image nginx qui sera utilisée avec sa configuration et ses fichiers à servir pour les tests, l’image img et son paramétrage (dont l’accès au redis et au nginx) ainsi que le répertoire du cache et enfin l’image de la suite de tests qui est construit avec son Dockerfile, prévue pour faire du Docker-in-Docker et avoir accès au cache img et aux fichiers nginx.

    Le Dockerfile de tests est basé sur une image Hurl (un outil pour faire des tests HTTP). On ajoute les fichiers de tests en .hurl, le script shell qui pilote le tout, on prévoit d’avoir les paquets dont on aura besoin : bash (pas par défaut dans les Alpine), coreutils, docker et xxd (pour les conversions texte vers hexadécimal). Et on lance les tests par défaut.

    La configuration nginx de test écoute en HTTP sur le port 80 en IPV4 et IPv6 et permet de définir des chemins avec des réponses en HTTP 301, 302, 308, 400, 401, 403, etc. jusqu’à 530 et même 666 pour les codes invalides, ainsi qu’une redirection infinie.

    Dans les données de tests servies par nginx, on trouve des contenus du mauvais type, une image destinée à être bloquée, des images dans divers formats, une image très grande en pixels mais pas trop en octets, une image trop grande en octets, et un avatar à servir par défaut.

    Sont aussi présents cinq fichiers de tests avec une extension en .hurl :

    • le test de vie et les chemins hors img/ et avatars/
    • les tests sur les avatars : adresse valide ou invalide, image inexistante, bon et mauvais types, comportements sur les différents codes HTTP et sur une boucle de redirection infinie
    • les tests sur les images (découpés en trois parties, la partie initiale, la partie entre la récupération initiale et l’expiration du cache et enfin la partie après la récupération et l’expiration du cache.

    Vient enfin le script shell qui pilote le tout :

    • on définit les variables pour les cibles IPv4/IPv6 et les binaires redis et img que l’on veut utiliser dans les autres conteneurs Docker
    • on liste les images dans différentes catégories :
      • celles qui vont échouer et ne comporteront donc qu’une entrée dans redis sans rien dans le cache disque (avec sous-catégories possibles bloquées/non-bloquées)
      • les images devant être en erreur
      • les images qui iront normalement dans le cache
    • on prépare des images qui seront altérées plus tard
    • on purge le cache sur disque, on nettoie redis et on déclare toutes nos images comme le faire le code Ruby on Rails. Certaines sont déclarées bloquées pour les tests.
    • on lance les premiers tests (en IPv4 et IPv6, en HTTP 1.1 et en HTTP 2.0)
    • on modifie certaines images pour simuler un changement sur le serveur externe, une suppression sur le serveur externe ou un blocage par l’équipe de site
    • on lance les tests post-récupération initiale mais avant l’expiration du cache (toujours avec toutes les variantes)
    • on force l’expiration du cache
    • on lance les tests post-expiration du cache (toujours avec toutes les variantes)
    • si on est arrivé jusqu’ici, c’est qu’on a passé tous les tests Hurl, alors maintenant on recompte ce que l’on a dans redis et sur disque et on vérifie si ça correspond à nos attentes
    • on nettoie les images mises volontairement en échec
    • on lance le test d’audit interne qui doit nous dire que tout va bien
    • si on est arrivé jusque-là on écrit que tout va bien et on déclenche un sourire de satisfaction.

    L’audit interne

    L’objectif est de vérifier la cohérence des données dans redis, si des images sont indisponibles ou si des entrées dans le cache disque ne correspondent plus à aucune image.

    Le binaire d’img peut donc être appelé en mode audit et lancer des contrôles internes.

    D’abord il collecte la liste des fichiers dans le cache disque.

    Ensuite il vérifie que toutes les images listées dans les dernières images (img/latest) existent comme entrées individuelles.

    Puis il vérifie s’il existe des images bloquées (il râlera s’il y en a) et si chacune existe comme entrée individuelle le cas échéant.

    Ensuite on parcourt tous les entrées individuelles d’images :

    • on râle si on tombe sur une entrée img/updated/ ou img/err/ sans date d’expiration
    • on râle si on tombe sur une entrée img/ sans champ created_at, sans type ou d’un type inconnu, sans checksum, avec un statut inconnu, une image bloquée non présente dans les images bloquées, un champ inconnu, une présence inattendue dans le cache disque, etc. Et on marque les images que l’on a vu passer comme attendu dans le cache.
    • on râle sur tous les fichiers du cache restants (ne correspondant à aucune image)
    • si on a râlé, on renvoie 1, sinon 0

    Le grand nettoyage

    img a fonctionné pendant 12 ans en production : il a rencontré des bugs, des comportements inattendus, des contenus et commentaires ont été supprimés ou réédités, etc. Il est donc probable qu’il y ait besoin d’aller dépoussiérer un peu tout cela et de retirer ce qui est inutile.

    Les traces du grand nettoyage sont d’abord visibles dans la rétrospective de la première quinzaine de septembre 2024 :

    • une « image » sur sept présente un souci (n’est pas une image, adresse invalide, trop grosse, etc.) et n’est donc pas dans le cache sur disque (ce qui a conduit à pas mal de taf sur la partie gestion des images)
    • les types de contenu (Content-Type) en provenance de sites variés et divers, c’est quelque chose… entre les « image/JPEG » ou « image/PNG » en majuscules parce que, les charset=utf-8 ou UTF-8 ou… sur du binaire, les name= qui ne sont pas dans la norme… Wikimedia renvoie aussi du profile="https://www.mediawiki.org/wiki/Specs/SVG/1.0.0" (pareil ça semble en dehors de tout standard).

    D’abord j’attaque le sujet la fleur au fusil en me disant que ça va passer crème, je fais un joli tableau qui résume l’état initial :

                                  img/<uri>   img/updated/<uri>   img/err/<uri>   blocked
    total                           25565 -21       634               160            5
    
    no created_at                      23 -23         0                 0            0
    created_at                       2857 -3          0                 5            1
    created_at+type                   222             0                 0            0
    total not in cache               3104 -26         0                 0            0
    
    created_at+type+checksum(+etag) 22463 +5        634               155            4
    
    files in cache                  22778 +5
    

    Donc on a officiellement 25 565 images, mais 23 sont mal créées (état théoriquement impossible hors race condition), 222 sont incomplètes (état théoriquement impossible race condition), 22 463 sont attendues en cache et on a 22 778 fichiers dans le cache. Ça part mal. Je nettoie en premier le plus facile (on voit le delta +/- de mes corrections). Et on arrive à une situation où une image sur sept présente alors un souci et il faut gérer un grand volume de corrections à faire.

    Parmi les soucis on trouve des types de contenus inattendus (image/PNG ou image/JPEG avec majuscules, image, des images binaires annoncées avec un charset, des types invalides comme image/jpg au lieu de image/jpeg, etc), des erreurs de notre lectorat (mauvais lien, mauvais copier-coller, lien vers une page web au lieu d’une image), mais aussi des espaces insécables et autres blancs inopportuns, des guillemets convertis, des doubles scheme (http://https:// ou http://file://).

    Après cela se cache une autre catégorie encore plus pénible : les images que l’on a en cache, mais qui ne sont plus utiles au site : par exemple celles qui étaient dans des contenus ou commentaires supprimés (notamment le spam), celles qui étaient dans des commentaires ou contenus réédités depuis, etc.

    Un problème connu est devenu vite pénible : on n’a pas d’association entre les images externes et les contenus/commentaires concernés. Donc il faut d’abord extraire la liste de toutes les déclarations d’images externes des 12 tables SQL où l’on peut trouver des images et des avatars, sous forme HTML ou Markdown.

    Ensuite il faut sortir toutes les entrées dans redis et regarder si on les retrouve en clair ou converties en hexadécimal dans l’extraction SQL.

    Et par sécurité on fera une double vérification pour celles détectées en erreur, en relançant une recherche en base (attention à la casse dans la recherche texte).

    Au final, on peut supprimer des milliers d’entrées redis et de fichiers dans le cache.

    Et un jour l’audit dit :

    Connection 127.0.0.1:6379 0
    2024/10/19 12:11:21 Sanity check mode only
    2024/10/19 12:11:37 Files in cache: 17926
    2024/10/19 12:11:39 Total img keys in redis: 18374
    OK
    

    Ça aura pris un mois et demi (l’audit a été fusionné le 8 septembre 2024), certes pas en continu, mais ça a été long et guère palpitant de faire ce grand ménage. Et j’ai refait une seconde passe du traitement complet la semaine d’après pour vérifier que tout se passait correctement et que les soucis résiduels après tout ça étaient minimes ou nuls.

    Parmi les anecdotes, Web Archive / archive.org a eu sa fuite de comptes utilisateurs et a été indisponible sur la fin (ce qui rendait compliqué la récupération d’images perdues ou leur remplacement par un lien valide par exemple). Et, mentionné dans la rétrospective de la seconde quinzaine de septembre 2024, un compte de spammeur de 2015 supprimé… mieux vaut tard que jamais : détecté parce que comme beaucoup de visiteurs, le spammeur ne fait pas la différence entre un lien vers un document et l’ajout d’une image.

    Les problématiques restantes

    Il y a la question habituelle de la montée de versions des dépendances (pour nous actuellement contraintes celles du code Ruby on Rails) et du remplacement des composants devenus non-libres (migrer vers valkey plutôt que redis ? Questions à se poser sur l’avenir de nginx ?).

    On pourrait aussi ajouter la prise en charge du TLS et d’un certificat X.509 directement dans img plutôt que dans un frontal. Mais ce n’est utile que si on les sépare sur deux serveurs distants, ce qui n’est pas le cas actuellement. Donc même si ça ne paraît pas compliqué à faire, ce n’est pas urgent.

    Ensuite une entrée de suivi existe pour séparer le cache des avatars du cache des autres images : les contraintes pour le cache des avatars étant différentes de celui des autres images, le stockage en cache devrait être différent. Cela reste un problème mineur. Le changement doit d’abord être fait côté Ruby on Rails pour définir les avatars avec des clés redis différentes (genre avatars/ au lieu de img/). Ensuite on peut modifier img pour séparer le traitement des requêtes HTTP /img/<adresse_hexa> vers les clés redis img/<adresse> et le cache disque des images par rapport aux requêtes /avatars/<adresse_hexa> vers les clés avatars/<adresse> et le cache des avatars. Il faudra aussi déplacer les avatars stockés dans l’actuel cache des images dans leur propre cache. Et là on devrait pouvoir avoir la même adresse dans les deux caches mais avec un rendu éventuellement différent.

    Un autre problème concerne la non-association des contenus ou commentaires avec les images externes qu’ils contiennent, ce qui rend l’administration des anciennes images un peu pénible. Le fait que les contenus et commentaires peuvent être réédités ou simplement prévisualisés (donc que des images peuvent être supprimées et d’autres ajoutées) vient compliquer un peu la tâche. Actuellement un ensemble de scripts permettent d’obtenir ces infos et fournissent un contournement, mais ça reste un peu laborieux.

    Un cache rafraîchi périodiquement conserve les images pour éviter de surcharger le site d’origine, pas si le site a changé, déplacé ou perdu l’image. La modification pour servir depuis le cache disque en cas d’échec de récupération couvre le cas de la disparition d’une image avec une erreur sur l’adresse, pas celui où le serveur répond une mauvaise image. Il y a donc une autre entrée de suivi images et disparition du web évoquant l’augmentation des soucis sur les images externes avec un cache rafraîchi, en raison des domaines récupérés par des spammeurs et autres pénibles, ou perdus ou utilisés pour du phishing (imageshack.us, après framapic, pix.toilelibre, etc.). Diverses problématiques sont mentionnées comme la perte d’information et donc la diminution de l’intérêt des contenus anciens, la prime aux pénibles du référencement SEO qui pourrissent le net en récupérant les vieux domaines, la modification possible des images publiées. Pour résoudre cela techniquement, ça nécessite de suivre les images et les domaines perdus, et d’intervenir de façon régulière. Ou bien de ne plus rafraîchir le cache (que cela soit jamais, après la publication ou au bout d’un certain temps après la publication). Pour juste éviter la perte d’info, il est possible de remplacer par une image locale récupérée d’une archive du net type archive.org, avec le côté « pénible à faire » et sans garantie que ça soit toujours possible (merci waybackpy).

    Enfin une troisième entrée de suivi suggère l'hébergement des images des dépêches (et éventuellement des journaux), idéalement en permettant d’avoir une version modifiée d’une image en changeant sa taille. On peut citer en vrac comme problématiques la responsabilité légale, l’éventuelle volumétrie, l’impossibilité de corriger une image publiée facilement par la personne qui l’a soumise, la centralisation et la perte de référencement pour des tiers, l’éventuelle rétroactivité et le traitement de l’historique, le fait qu’il faut traiter tous les autres contenus/commentaires pouvant accueillir des images, etc. Autre question, faut-il différencier les images passées en modération a priori de celles en modération a posteriori ?

    Conclusion ?

    Bref sans surprise, il reste des problématiques et du code à faire pour les gérer (c’est rare un composant sans demandes d’évolution ou de correction). Yapuka (mais probablement plus tard, il faut aussi partager le temps avec les autres composants, ou avoir plus de contributions).

    img apporte les fonctionnalités que l’on attendait de lui même si on pourrait faire mieux. Plonger dans ce composant s’est avéré assez intéressant et formateur (et nécessaire) : techniquement cela a été l’occasion de faire du Go, du docker et du docker-compose, du redis et du nginx, du hurl et de l’HTTP. Et de comprendre ce que faisait un code écrit par une autre personne, de se poser des questions pour choisir les tests et le contenu de la documentation, de se demander pour quelles raisons tel ou tel choix a été fait, de rendre ce composant plus « contribuable », et de compléter le tout de façon détaillée avec une dépêche. Reste à savoir si j’ai répondu à l’attente d’un article technique sur le fonctionnement de ce cache, les choix techniques qui ont été faits, les erreurs commises donc à éviter… et la réponse est à trouver dans les commentaires.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇Korben
    • MiniPic – Compressez vos images en un clic sans perte de qualité
      Vous cherchez un moyen simple et rapide de réduire la taille de vos fichiers sans sacrifier la qualité et sans lancer de logiciel ? Ne cherchez plus, y’a MiniPic ! Ce service en ligne vous permet de convertir une image dans des formats modernes et optimisés comme WebP, AVIF ou encore JPEG-XL, tout simplement en la glissant-déposant dessus. Ces formats offrent un meilleur taux de compression que le traditionnel JPEG, tout en conservant une qualité quasi identique. On voit d’ailleurs le % de

    MiniPic – Compressez vos images en un clic sans perte de qualité

    Par : Korben
    27 juillet 2024 à 09:00

    Vous cherchez un moyen simple et rapide de réduire la taille de vos fichiers sans sacrifier la qualité et sans lancer de logiciel ? Ne cherchez plus, y’a MiniPic !

    Ce service en ligne vous permet de convertir une image dans des formats modernes et optimisés comme WebP, AVIF ou encore JPEG-XL, tout simplement en la glissant-déposant dessus. Ces formats offrent un meilleur taux de compression que le traditionnel JPEG, tout en conservant une qualité quasi identique. On voit d’ailleurs le % de compression gagné.

    Sur mon test, j’ai balancé un webp déjà super optimisé et y’a que le AVIF qui a su tirer son épingle du jeu.

    Ensuite, y’a plus qu’à cliquer sur le bouton « Download » du format qui vous plait et voilà !

    • ✇Korben
    • Comment créer des icônes macOS icns sur-mesure avec Img2icns
      Vous cherchez un moyen simple et gratuit de convertir vos images en icônes pour macOS ? Ne cherchez plus, je vous ai déniché un petit outil en ligne bien pratique qui fait exactement ça : Img2icns. Ce site web gratuit vous permet de convertir facilement vos images aux formats PNG, SVG, JPG et WebP en icônes macOS au format ICNS. Il vous suffit pour cela de glisser-déposer votre image sur la page ou de cliquer pour la sélectionner depuis votre ordinateur, et hop, le tour est joué ! C’

    Comment créer des icônes macOS icns sur-mesure avec Img2icns

    Par : Korben
    24 mai 2024 à 09:44

    Vous cherchez un moyen simple et gratuit de convertir vos images en icônes pour macOS ? Ne cherchez plus, je vous ai déniché un petit outil en ligne bien pratique qui fait exactement ça : Img2icns.

    Ce site web gratuit vous permet de convertir facilement vos images aux formats PNG, SVG, JPG et WebP en icônes macOS au format ICNS. Il vous suffit pour cela de glisser-déposer votre image sur la page ou de cliquer pour la sélectionner depuis votre ordinateur, et hop, le tour est joué !

    C’est pratique si vous développez une application pour Mac et que vous voulez lui donner une icône personnalisée bien classe, au lieu du triste dossier bleu par défaut. Ou alors si vous êtes un maniaque de la customisation et que vous voulez changer toutes les icônes de votre système avec vos images préférées. Ça peut aussi être utile pour les graphistes et les webdesigners qui ont besoin de créer des icônes sur mesure pour leurs projets.

    Une fois que vous avez lâché votre image sur la page web de Img2icns, le site va automatiquement la convertir en icône ICNS qui est le format standard utilisé par macOS pour les icônes. Ça va générer un fichier .icns qui contiendra en fait plusieurs versions de votre image de différentes tailles, du 16×16 jusqu’au 512×512 pixels. Comme ça, le système pourra afficher l’icône de manière optimale quelle que soit la taille nécessaire.

    Img2icns gère aussi les images transparentes, ce qui peut être bien pratique pour créer des icônes avec des formes originales qui se fondront parfaitement dans l’interface de macOS. Par contre, si votre image de départ n’est pas carrée, elle sera automatiquement redimensionnée et centrée pour rentrer dans le format carré des icônes ICNS. Donc n’hésitez pas à recadrer votre image à l’avance aux bonnes dimensions pour un résultat optimal.

    Ensuite il suffit d’aller dans le Finder, de faire un clic droit sur le dossier ou le fichier dont vous voulez changer l’icone, et cliquer sur « Lire les informations ». Vous devriez alors tomber sur ce genre de fenêtre.

    Glissez alors votre icone icns à la place du dossier ou de l’icone de votre fichier et tadaaaa.

    Bref, si vous avez besoin de créer facilement des icônes personnalisées pour macOS à partir de n’importe quelle image, Img2icns c’est l’outil rêvé.

    Créatures ou IA : consultez, manipulez & annotez les images des bibliothèques, musées… grâce à IIIF

    L’initiative IIIF, pour International Image Interoperability Framework, est née de la constatation que la diffusion d’images patrimoniales sur le web était « trop lente, trop coûteuse, trop décousue, trop complexe ». IIIF apporte une solution pérenne et élégante à ces difficultés en conciliant accessibilité, interopérabilité et sobriété. Il intéresse les GLAM (collections, bibliothèques, archives, musées, etc.) ainsi que les acteurs de l’enseignement et de la recherche.

    Concrètement, IIIF créé un cadre technique commun grâce auquel les fournisseurs peuvent délivrer leurs contenus sur le web de manière standardisée, afin de les rendre consultables, manipulables et annotables par n’importe quelle application compatible.

    International Image Interoperability Framework

    Sommaire

    Origine de IIIF

    En 2010, constitution d’un groupe de réflexion et d’expérimentation sur l’interopérabilité des manuscrits médiévaux numérisés à l’initiative de l’université de Stanford. Ses travaux ont conduit à l’élaboration d’un modèle de données Shared Canvas basé sur le modèle d’annotation du W3C.

    À la même époque, de grandes bibliothèques nationales et des universités ont travaillé à la définition d’un mécanisme d’échange des images pour aboutir en 2012 à la publication de la version 1 de l’API Image de l'International Image Interoperability Framework (IIIF).

    Le Consortium IIIF a été créé en 2015 par onze institutions : la British Library, Artstor, Die Bayerische Staatsbibliothek, la Bibliothèque nationale de France, Nasjonalbiblioteket (Norvège), Wellcome Trust, et les universités d’Oxford, Stanford, Cornell, Princeton et Yale. Il compte actuellement 69 membres.

    Qu’est-ce que IIIF ?

    Un aspect spectaculaire de IIIF réside dans la visualisation fluide des images et le zoom profond, cf. Sagami River, Kyoto (1660?-1670?). Princeton University, mais IIIF ne se résume pas à ça, loin de là.

    _Sagami River, Kyoto (1660?-1670?) affiché par le visualiseur libre UniversalViewer

    IIIF désigne à la fois le cadre technique partagé d’un ensemble de protocoles ouverts et une communauté humaine qui les implémente, développe des logiciels et in fine expose des contenus audiovisuels interopérables.

    Ce standard de fait est utilisé par de plus en plus d’institutions culturelles — collections, bibliothèques, musées, archives, etc. — et scientifiques — universités, labos, muséums, etc. Ses fonctionnalités s’étendent maintenant à l’audio et à la vidéo ; la prise en compte de la 3D est en cours.

    Pour l’heure, IIIF est surtout utilisé pour la diffusion d’images numériques. Ce sont ainsi des centaines de millions d’images qui deviennent véritablement découvrables, consultables, comparables, manipulables, citables, annotables et mixables par n’importe quelle application compatible capable de se « brancher » sur les entrepôts des uns et des autres.

    Sans téléchargement de fichiers images, ces ressources de « première main » sont immédiatement utilisables par les professionnels comme par les amateurs. Elles intéressent aussi les chercheurs, les enseignants et les élèves, et les médiateurs culturels, scientifiques et artistiques. IIIF facilite grandement la diffusion, la réutilisation et la valorisation de toutes ces ressources disséminées.

    Principe général d’interopérabilité de IIIF : trois applications différentes sont branchées à trois entrepôts IIIF (source : Biblissima+ — Licence Ouverte / Open License 2.0)
    Principe général d’interopérabilité de IIIF : trois applications différentes sont branchées à trois entrepôts IIIF (source : Biblissima+ — Licence Ouverte / Open License 2.0)

    Visualisation d’un document

    Photo de Bob Fitch, Martin Luther King Jr. & Joan Baez (1966), visualisée avec le logiciel libre Tify

    Copie d’écran du logiciel libre Tify présentant une photographie de Martin Luther King et de Joan Baez (Bob Fitch, 1966). Ce document est fourni par un serveur IIIF opéré par l’université de Stanford.

    Visualisation de plusieurs documents

    La magie IIIF c’est la capacité de jongler avec les références des ressources, par exemple, pour les réunir dans des bibliothèques virtuelles ou encore pour servir de points d’entrée aux robots et autres IA afin d’analyser les documents.

    Léonard Limosin est un peintre, émailleur, dessinateur et graveur français du XVIe siècle. Deux de ses œuvres sont présentées ci-après dans le visualiseur libre IIIF Mirador.

    Vues d’œuvres de Léonard Limosin avec le logiciel libre Mirador

    Sur cette page, vous pouvez explorer chaque image et zoomer, les comparer, lire leurs métadonnées, passer en plein écran ou agencer différemment les fenêtres. L’interface de Mirador vous permet aussi d’accéder à d’autres références en cliquant sur le bouton rond bleu puis en sélectionnant les documents préenregistrés.

    Vous avez aussi la possibilité d’en ajouter d’autres via le bouton bleu Ajouter une ressource en bas à droite, ensuite en insérant l’URL d’un manifeste IIIF. En faisant une recherche sur Léonard Limosin vous trouverez différentes collections comportant certaines de ses œuvres. Certaines les exposent au standard IIIF. Dans ce cas, pour chaque notice il s’agit de récupérer le lien d’un manifeste IIIF (explicite ou associé au logo IIIF). Exemple, avec cette Crucifixion au Fitzwilliam Museum (Cambridge).

    Le logiciel libre Omeka dispose de fonctionnalités IIIF et permet de créer des bibliothèques virtuelles de ressources IIIF.

    Apports de IIIF

    D’après IIIF en 5 minutes.

    Pour les usagers

    L’accès à des images de haute qualité ainsi qu’à leurs métadonnées, large choix de visualiseurs libres :

    Ces outils, et d’autres encore, offrent une large palette d’interfaces riches et universelles pour :

    Il existe de nombreux dispositifs pour utiliser ces ressources de « première main » et corpus dans un environnement éducatif et de recherche.

    Pour les diffuseurs

    • bénéficier d’une manière standardisée, cohérente et efficace, de présenter et de partager leurs collections,
    • améliorer leur visibilité, l’accessibilité à leurs données et développer des espaces de collaboration et de recherche,
    • faciliter la gestion des ressources numériques en garantissant un accès homogène et pérenne,
    • promouvoir la participation des usagers en mobilisant des outils avancés pour l’exploration et l’utilisation des ressources,
    • proposer des projets de transcription, de crowdsourcing ou de sciences participatives en fournissant des documents annotables,
    • réduire et mutualiser les coûts en utilisant un standard ouvert, des services et des logiciels éprouvés.

    Pour les développeurs

    Il existe de nombreux logiciels et composants compatibles avec les API de IIIF, beaucoup sont libres. La page officielle Awesome IIIF recense les principaux ainsi qu’un grand nombre de ressources documentaires et de services.

    IIIF est entièrement basé sur les standards et l’architecture du Web (principes REST et du Linked Data, Web Annotation Model du W3C, JSON-LD) ce qui facilite le partage et la réutilisation des données.

    Le découplage entre la couche serveur et la couche cliente, la modularité des composants logiciels, la ré-utilisabilité des ressources offrent une grande souplesse et réduit la dépendance à un logiciel ou un prestataire.

    La communauté des usagers et des développeurs est active.

    Comment ça marche ?

    Le manifeste est un élément essentiel de IIIF. C’est un document au format JSON-LD qui représente généralement un objet physique numérisé tel qu’un livre, une œuvre d’art, un numéro de journal, etc. Il peut également rassembler des éléments de provenances diverses. Il décrit l’ensemble du document, ses métadonnées, sa structure et référence les images et les médias qu’il embarque.

    Les liens des manifestes IIIF sont plus ou moins faciles à trouver dans les notices des catalogues. Une méthode simple consiste à rechercher le logo IIIF ou à explorer les informations fournies par les visualiseurs. Le site officiel de IIIF alimente un annuaire non exhaustif des sites et, site par site, fournit généralement un mode d’emploi pour récupérer les manifestes.

    Techniquement, IIIF comporte deux API principales, l’API Image et l’API Presentation qui fonctionnent de concert.

    API Image

    L’API Image fournit des informations basiques sur l’image ainsi que les pixels de l’image entière ou de zones à la demande.

    Elle se présente avec les éléments suivants :

    • une URL d’accès aux informations techniques d’une image, abcd1234 est un exemple d’identifiant :
      http://www.example.org/image-service/abcd1234/info.json
    • une URL à construire à la carte pour récupérer et manipuler tout ou partie de l’image en précisant la zone, la taille, l’orientation, la qualité et le format de l’image à produire.

    schéma de l’URL API Image

    Voilà ce que ça donne en pratique avec l’image de test. Attention ! LinuxFR met en cache les images, si vous souhaitez effectuer les manipulations, copiez et modifiez les paramètres des url ci-après.

    Le fichier info.jsonest le suivant :

    • https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/info.json

    • rendu homothétique de l’image entière avec une largeur de 300px

      https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/full/300,/0/default.jpg

      image entière rendue homothétique avec une largeur de 300px

    • détail de la même image

      https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/300,/0/default.jpg

      détail

    • rotation et transformations

      https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/150,/45/default.jpg

      détail

      https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/150,/0/bitonal.jpg

      détail
      https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/150,/0/gray.jpg

      le rendu en niveaux de gris ne fonctionne pas avec ce serveur IIIF.

    Pour en savoir plus consultez les spécifications de l’API Image (version 3.0 actuellement).

    L’API Presentation

    En complément à l’API Image, l’API Presentation fournit les propriétés d’un document IIIF : métadonnées, structures, annotations, etc.

    Principales composantes d’un Manifeste IIIF

    Principales composantes d’un Manifeste IIIF (source : Biblissima+ — Licence Ouverte / Open License 2.0)

    Il existe de nombreux visualiseurs pour afficher ces documents et les informations associées. On distingue alors dans différentes zones le rôle de chacune des deux API principales.

    API Image

    Source : Biblissima+ — Licence Ouverte / Open License 2.0.

    API Presentation

    Source : Biblissima+ — Licence Ouverte / Open License 2.0.

    À noter que le visualiseur optimise le trafic en ne demandant au serveur que la partie de l’image à afficher

    Pour en savoir plus consultez les spécifications de l’API Presentation (version 3.0 actuellement).

    Les autres API

    Voir la page des spécifications, extensions, traductions et travaux en cours.

    • Authorization Flow (version 2.0) - décrit un système de contrôle d’accès.
    • Change Discovery (version 1.0) - fournit les informations nécessaires pour découvrir et utiliser les ressources IIIF.
    • Content Search (version 2.0) - définit le mécanisme d’interopérabilité permettant d’effectuer des recherches dans les annotations textuelles associées à un objet.
    • Content State (version 1.0) - permet de référencer tout ou partie d’un manifeste IIIF et de décrire des modalités d’accès.

    Au-delà de l’image : l’audio, la vidéo et la 3D

    Les références à des ressources audio et vidéo sont prises en compte dans la version 3.0 de l’API de présentation IIIF. À noter qu’il n’existe pas pour l’audio et pour la vidéo d’équivalents de l’API Image, en effet, cet aspect est pris en charge par les navigateurs. Exemple : audio et vidéo d’un morceau musical associés à la partition.

    Il y a une forte demande pour la prise en compte de la 3D par IIIF. Un groupe de travail rassemble les institutions et les personnes intéressées. Il anime un dépôt Github qui rassemble les documents et expérimentations du groupe.

    IIIF et IA

    IIIF est de plus en plus utilisé par des dispositifs d’apprentissage et de reconnaissance automatique en raison de la facilité d’accès aux images entières ou à des zones, dans les définitions et qualités nécessaires. Il est aussi possible d’imaginer des IA qui génèrent automatiquement des manifestes annotés.

    La société française Teklia s’est spécialisé dans ce domaine. Elle vient d'annoncer le passage sous licence libre de sa plateforme Arkindex.

    Harvard Art Museums a créé AI Explorer qui mobilisent un certain nombre d’IA pour décortiquer des reproductions d’œuvres et des photographies.

    Le Consortium IIIF a mis en place un groupe de travail et il existe une formation en ligne sur le sujet.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • GIMP 2.10.38 est sorti
      Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais). Cette (peut-être dernière) version stable de GIMP 2 apporte des rétroportages très demandés de GTK3, y compris une prise en charge améliorée des tablettes sous Windows. Un certain nombre de corrections de bugs et d’améliorations mineures sont également incluses dans cette version. lien nᵒ 1 : Annonce de la version 2.10.38Sommaire Nouvelles fonctionnalités et améliorations

    GIMP 2.10.38 est sorti

    Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais).

    Cette (peut-être dernière) version stable de GIMP 2 apporte des rétroportages très demandés de GTK3, y compris une prise en charge améliorée des tablettes sous Windows. Un certain nombre de corrections de bugs et d’améliorations mineures sont également incluses dans cette version.

    Sommaire

    Cette actualité répertorie les changements les plus notables et visibles. En particulier, nous ne répertorions pas toutes les corrections de bogues ou améliorations mineures. Pour obtenir une liste plus complète des modifications, vous devez vous référer au fichier NEWS ou consulter l'historique des commits.

    Nouvelles fonctionnalités et améliorations

    Prise en charge améliorée des tablettes sous Windows

    Avant cette version, GIMP prenait uniquement en charge la connexion de tablettes sous Windows via les pilotes WinTab plutôt que les nouveaux pilotes Windows Ink. Pour cette raison, nous avons reçu un certain nombre de rapports concernant des tablettes présentant des problèmes avec des boutons qui ne répondent pas, une sensibilité à la pression incorrecte, un mouvement de brosse retardé et des changements de position à mi-course.

    Ces problèmes étaient dus à une limitation de GTK2, car la prise en charge de Windows Ink a été implémentée dans GTK3 par Luca Bacci, contributeur de longue date. Pour cette version, Luca a eu la gentillesse de rétroporter ce support vers GTK2. Vous pouvez désormais basculer entre les pilotes WinTab et Windows Ink (s’ils sont pris en charge par votre ordinateur) dans la boîte de dialogue Préférences sous les paramètres du périphérique d’entrée.

    Windows Pointer Input API option in GIMP 2.10.38
    Windows Pointer Input API peut être changé maintenant - GIMP 2.10.38

    Rétroportages d’autres fonctionnalités de GTK3

    Luca a également contribué à plusieurs autres fonctionnalités portées de GTK3 à GTK2. Certaines des améliorations rétroportées incluent la mise à jour de la taille de la boîte de dialogue d’impression afin que les boutons ne soient pas coupés, la résolution de problèmes avec les boîtes de dialogue contextuelles apparaissant derrière les précédentes et plusieurs correctifs concernant la saisie au clavier.

    Ces améliorations concernent principalement Windows et sont déjà incluses dans la version de développement 2.99. Cependant, nous sommes très heureux que ces améliorations de la qualité de vie soient désormais disponibles dans cette version stable de GIMP 2.10 !

    Corrections de bogues

    Crashs récents

    Deux crashs fréquemment signalés ont été corrigés. Un changement dans GLib 2.80 a exposé un bogue dans notre processus de fermeture et provoqué un crash à la sortie. Luca Bacci a une fois de plus conçu un correctif pour la version 2.10.38 et la prochaine version candidate 3.0. Un autre crash que certains utilisateurs rencontraient lors de très petites sélections a également été corrigé.

    Autres correctifs

    Un certain nombre d’autres petits bugs ont été corrigés dans cette version. Parmi eux :

    • Les PNG indexés avec transparence sont désormais exportés avec les bonnes couleurs
    • Anders Jonsson a corrigé les plages d’entrée de plusieurs filtres tels que Waves et Distort
    • Le champ de personnalisation de la barre de titre prend désormais en charge les caractères UTF-8
    • Les commentaires d’images existants ne « fuient » plus dans les images nouvellement créées

    Statistiques de sortie

    Depuis GIMP 2.10.36 :

    • 16 rapports ont été clos comme CORRIGÉS dans la version 2.10.38
    • 9 demandes de fusion ont été exécutées
    • 81 commits ont été poussés
    • 1 nouvelle traduction a été ajoutée : kabyle
    • 16 traductions ont été mises à jour : biélorusse, portugais brésilien, anglais britannique, danois, géorgien, allemand, grec, hongrois, islandais, italien, norvégien nynorsk, slovène, espagnol, suédois, turc, espagnol

    25 personnes ont apporté des modifications ou des correctifs à la base de code de GIMP 2.10.36 (l’ordre est déterminé par le nombre de commits) :

    • 7 développeurs : Alx Sa, Jehan, Luca Bacci, Jacob Boerema, Lukas Oberhuber, lillolollo, Øyvind Kolås
    • 19 traducteurs : Kolbjørn Stuestøl, Sabri Ünal, Bruce Cowan, Yuri Chornoivan, Vasil Pupkin, Anders Jonsson, Rodrigo Lledó, Jürgen Benvenuti, Sveinn í Felli, Andi Chandler, Juliano de Souza Camargo, Ekaterine Papava, Balázs Úr, Martin, Philipp Kiemle, Alan Mortensen, Dimitris Spingos, Marco Ciampa, Yacine Bouklif

    Contributions sur d’autres dépôts du GIMPverse (l’ordre est déterminé par le nombre de commits) :

    • La branche gimp-2-10 de gimp-macos-build (scripts de build macOS) a eu 30 commits depuis la version 2.10.36 par 2 contributeurs : Lukas Oberhuber, Bruno Lopes.
    • La version flatpak est composée de 11 commits par 3 contributeurs : Jehan, Hubert Figuière et Bruno Lopes.
    • Notre site Web principal a eu 42 commits depuis la sortie du 2.99.18 par 4 contributeurs : Jehan, Alx Sa, Andre Klapper et Lukas Oberhuber.
    • Notre site Web du développeur a enregistré 34 commits depuis la version 2.99.18 par 6 contributeurs : Bruno Lopes, Jehan, Alx Sa, bootchk, Alpesh Jamgade et Robin Swift.
    • Notre documentation 2.10 a eu 35 commits depuis la version 2.10.36 par 8 contributeurs : Alan Mortensen, Anders Jonsson, Rodrigo Lledó, Jacob Boerema, Kolbjørn Stuestøl, Marco Ciampa, Andi Chandler et Vittor Paulo Vieira da Costa.

    N’oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, rapportent des bugs et discutent avec nous d’éventuelles améliorations. Notre communauté est également profondément reconnaissante envers les guerriers d’Internet qui gèrent nos différents canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

    Remarque : compte tenu du nombre de composants dans GIMP et son univers, et de la manière dont nous obtenons des statistiques via les scripts git, des erreurs peuvent se glisser dans ces statistiques. N’hésitez pas à nous dire si nous avons manqué ou mal catégorisé certains contributeurs ou contributions.

    Nouvelles de l’équipe et processus de publication

    Idriss, contributeur du GSoC 2023, a récemment obtenu un accès « développeur » sur le référentiel source principal, pour le travail formidable qu’il a continué depuis lors.

    Ville Pätsi, contributeur de très longue date (plus de 20 ans !), sur divers sujets (design, thématisation et plus) a obtenu l’accès « reporter » à Gitlab pour aider au tri et à l’organisation directement dans le tracker.

    Autour de GIMP

    Des nouvelles des miroirs

    Depuis nos dernières nouvelles, 3 nouveaux miroirs accueillent GIMP :

    • Clarkson Open Source Institute, États-Unis
    • FCIX, Suisse
    • Tomás Leite de Castro, Portugal

    Cela nous amène à un total de 49 miroirs répartis dans le monde.

    Les miroirs sont importants, car ils aident le projet en partageant la charge de dizaines de milliers de téléchargements quotidiens. De plus, en disposant de miroirs répartis à travers le monde, nous garantissons que tous aient un accès rapide au téléchargement de GIMP.

    Sponsors d’infrastructure et de matériel

    Nous avons amélioré la page sponsor avec 2 sections :

    • "Infrastructure Sponsors" répertorie les sponsors qui aident GIMP au niveau de l’infrastructure :

      • CircleCI et MacStadium rendent possible notre plateforme d’intégration continue macOS.
      • Arm Ltd. sponsorise et administre plusieurs exécuteurs « Aarch64 » sur Windows pour notre version ARM 64 bits pour Windows ; et Microsoft avait offert des frais uniques pour leur Microsoft Store.
    • "Hardware Sponsors" répertorie les sponsors qui ont fait don de matériel aux contributeurs pour les aider dans leur travail de développement :

      • Arm Ltd. a récemment fait don d’un kit de développement Windows 2023 pour prendre en charge notre récent support Aarch64/Windows.
      • Purism a fait don d’un Librem Mini en 2021.

    Télécharger GIMP 2.10.38

    Vous trouverez toutes nos builds officielles sur le site officiel de GIMP (gimp.org) :

    • Flatpaks Linux pour x86 et ARM (64 bits)
    • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits)
    • Paquets macOS DMG pour le matériel Intel
    • Paquets macOS DMG pour le matériel Apple Silicon

    D’autres paquets réalisés par des tiers devraient évidemment suivre (paquets des distributions Linux ou *BSD, etc.).

    Et ensuite ?

    C’est clairement l’une des plus petites versions de la série 2.10, et elle pourrait être notre dernière. Nous verrons, même si nous savons aussi que certaines personnes restent bloquées plus longtemps que d’autres sur des séries plus anciennes (en particulier lors de l’utilisation des distributions Long Term Support (LTS) de systèmes d’exploitation de logiciels libres), si nous pourrions donc faire (si nous pensons que c’est nécessaire), une version 2.10.40 avec des corrections de bogues juste avant ou juste après la sortie de GIMP 3.0.0, en guise de conclusion.

    Dans tous les cas, nous arrêtons désormais le rétroportage des fonctionnalités de la série 2.10. Ces améliorations de la prise en charge des tablettes graphiques pour Windows sont suffisamment importantes pour qu’elles aient dû être intégrées ; mais à partir de maintenant, nous voulons nous concentrer uniquement sur la sortie de GIMP 3.0.0.

    Maintenant, vous vous demandez peut-être quand cela se produira-t-il ? Très bientôt ! Nous sommes sur le dernier sprint vers la release candidate. Cela inclut de nombreuses corrections de bugs, mais également des modifications de l’API en cours. Nous vous tiendrons au courant !

    N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, comme moyen de redonner et accélérer le développement de GIMP. L’engagement communautaire permet au projet de se renforcer ! 💪🥳

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇Korben
    • Microsoft Designer – Pour retoucher ou créer vos images à l’aide de l’IA
      Ça fait un petit moment que ça existe et je n’avais pas encore pris le temps de vous en parler. En plus, ça a bien évolué, donc je pense qu’il est temps ! Il s’agit de Microsoft Designer, un outil qui va vous permettre de « bosser » sur vos meilleures idées d’images sans avoir de compétence en graphisme. Et pour cela, Microsoft nous offre différents outils à base d’IA qui permettront de faire tout un tas de trucs rigolos. Bon, déjà, il y a le Image Creator qui permet de générer des imag

    Microsoft Designer – Pour retoucher ou créer vos images à l’aide de l’IA

    Par : Korben
    15 février 2024 à 09:00

    Ça fait un petit moment que ça existe et je n’avais pas encore pris le temps de vous en parler. En plus, ça a bien évolué, donc je pense qu’il est temps !

    Il s’agit de Microsoft Designer, un outil qui va vous permettre de « bosser » sur vos meilleures idées d’images sans avoir de compétence en graphisme. Et pour cela, Microsoft nous offre différents outils à base d’IA qui permettront de faire tout un tas de trucs rigolos.

    Bon, déjà, il y a le Image Creator qui permet de générer des images à partir d’un prompt de votre choix. Toutefois, pour ceux qui ont l’imagination d’un parpaing, il y a surtout des tonnes d’exemples de prompts très cools permettant de faire des tas d’illustrations aux styles dont « toute ressemblance existante ou ayant existé avec le style d’un artiste, ne serait que fortuite, évidemment« .

    Vous pouvez par exemple avoir un template pour faire votre propre image de figurine Funko.

    Voici ce que ça donne avec moi :

    Rigolo non ?

    Mais Designer va encore plus loin, puisqu’il permet de concevoir à l’aide d’un prompt, un design complet comme vous le feriez sur Canva. Mais également supprimer des éléments sur une images, étendre votre image (outpainting), virer le fond d’une image…

    Sans oublier un générateur de kit pour votre marque ou d’album photo, ou encore de stickers. Et c’est gratuit, c’est ça qui est fou !

    Voici ce que donnerait mon kit de marque Korben. Bon je suis pas convaincu mais c’est sympa quand même.

    Voilà, vous l’aurez compris, Microsoft vient totalement d’éradiquer une profession à l’aide d’un simple site web.

    Pour tester c’est par ici que ça se passe.

    • ✇Korben
    • Turbo Art – Jouez avec SDXL Turbo pour de la génération d’image créative et en temps réel
      Turbo Art est un site proof of concept qui va vous permettre de jouer avec un modèle de génération d’image nommé SDXL-Turbo. Pour rappel, c’est un modèle text2image, rapide et avancé, capable de générer des images photo-réalistes à partir d’une simple consigne textuelle en une seule évaluation de réseau neuronal. Sa performance exceptionnelle en termes de vitesse et de qualité d’image le rend particulièrement utile pour des tâches qui nécessitent une génération d’image rapide et précise à p

    Turbo Art – Jouez avec SDXL Turbo pour de la génération d’image créative et en temps réel

    Par : Korben
    11 février 2024 à 09:00

    Turbo Art est un site proof of concept qui va vous permettre de jouer avec un modèle de génération d’image nommé SDXL-Turbo.

    Pour rappel, c’est un modèle text2image, rapide et avancé, capable de générer des images photo-réalistes à partir d’une simple consigne textuelle en une seule évaluation de réseau neuronal. Sa performance exceptionnelle en termes de vitesse et de qualité d’image le rend particulièrement utile pour des tâches qui nécessitent une génération d’image rapide et précise à partir d’un texte. Mais le mieux c’est encore de le tester au travers de Turbo Art.

    Sur Turbo Art que vous pouvez également auto-héberger, vous allez pouvoir importer une photo et la retravailler en temps réel à l’aide d’un prompt, mais également de quelques outils pour redessiner par-dessus. J’ai ajouté un petit chapeau bleu à ce toutou en indiquant que je voulais en faire un ourson de dessin animé type Pixar.

    Et même chose pour mon chat, mais avec un bonnet de Noël.

    Rigolo non ? Et surtout ça permet d’apprivoiser en douceur ce genre de techno. Turbo Art offre également une fonctionnalité Enhance qui vous permettra d’améliorer l’image en testant d’autres générations et bien sûr de télécharger le rendu final pour vous en faire un avatar ou une illustration quelconque.

    À tester ici.

    ❌
    ❌