Files
varlog/_cache/similar/0e0b8d1d-3352-4ab7-bc70-7bc1f02ee485.json
2026-05-15 10:37:48 +02:00

1 line
20 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[{"uuid":"11186836-bbac-4054-82db-a3bfed14a274","slug":"imagemagick-traiter-des-images-en-ligne-de-commande","title":"ImageMagick : traiter des images en ligne de commande","category":"linux","author":"cedric@abonnel.fr","cover":"cover.png","published":true,"published_at":"2025-12-28 14:56","created_at":"2025-12-28 14:56:14","updated_at":"2026-05-12 00:36:01","tags":[],"plain":"1. À quoi ça sert\r\n\r\nImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit \"Redimensionner\" sur cent fichiers à la suite : juste une commande dans un terminal, et le travail est fait.\r\n\r\nC'est une suite d'outils qui sait lire, écrire et transformer plus de 200 formats — du JPEG classique au PDF en passant par le HEIC des iPhones, le WebP de Google ou le bon vieux TIFF des scanners. L'absence d'interface graphique est ici une fonctionnalité, pas un défaut : elle permet de l'utiliser partout où il n'y a pas d'écran, et surtout dans tout ce qui doit tourner tout seul.\r\n\r\nOn le retrouve donc naturellement :\r\nsur des serveurs web qui génèrent des miniatures à la volée,\r\ndans des scripts qui traitent des dossiers entiers d'un coup,\r\ndans des pipelines CI/CD pour préparer des assets,\r\ndans des conteneurs Docker, accessibles uniquement en SSH.\r\n\r\nDepuis la version 7, tout passe par une commande unique : . Les anciennes commandes (, , ...) existent toujours pour la compatibilité, mais elles ne sont plus la norme.\r\n\r\n2. Installation\r\n\r\nSur Debian ou Ubuntu :\r\n\r\n\r\n\r\nOn vérifie ensuite que tout est en place :\r\n\r\n\r\n\r\nLa sortie indique aussi les délégués compilés (libwebp, libheif, libraw, etc.). Si un format précis vous intéresse, c'est ici qu'il faut regarder : ImageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.\r\n\r\n3. Comment ImageMagick raisonne\r\n\r\nToutes les commandes suivent la même logique :\r\n\r\n\r\n\r\nL'image est chargée en mémoire, puis chaque option s'applique dans l'ordre où elle est écrite, comme une chaîne de traitement. Ce point est important : déplacer une option dans la ligne peut changer le résultat final.\r\n\r\nExemple :\r\n\r\n\r\n\r\nIci, l'image est lue, redimensionnée à 800×600, puis compressée à 85% de qualité, puis écrite sur le disque. Si on inversait et , le résultat serait identique dans ce cas précis, mais avec des opérations qui modifient les pixels (flou, conversion d'espace colorimétrique, recadrage), l'ordre devient critique.\r\n\r\n4. Convertir d'un format à un autre\r\n\r\nLe cas le plus simple : changer l'extension du fichier de sortie suffit.\r\n\r\n\r\n\r\nImageMagick détecte le format cible à partir de l'extension et fait la conversion. C'est aussi simple que ça pour 90% des cas.\r\n\r\nQuand on veut être plus précis — par exemple forcer une profondeur de couleur particulière — on l'indique explicitement :\r\n\r\n\r\n\r\nUtile quand on récupère des images en 16 bits par canal qu'on veut ramener à du 8 bits standard, soit pour gagner de la place, soit pour garantir la compatibilité avec un logiciel récalcitrant.\r\n\r\n5. Redimensionner\r\n\r\nLa méthode brutale\r\n\r\n\r\n\r\nCette commande redimensionne à 800×600 en respectant les proportions par défaut, contrairement à ce qu'on pourrait croire. Si l'image source est en 4:3, elle rentrera pile dedans ; si elle est en 16:9, ImageMagick choisira la dimension la plus contraignante et l'autre sera plus petite que demandé.\r\n\r\nPour forcer exactement ces dimensions quitte à déformer l'image, il faut ajouter un point d'exclamation :\r\n\r\n\r\n\r\nNe rétrécir que les grandes images\r\n\r\nC'est probablement le cas le plus utile au quotidien : on a un dossier d'images, on veut s'assurer qu'aucune ne dépasse 1600 pixels, mais on ne veut pas agrandir les petites (ce qui dégraderait leur qualité).\r\n\r\n\r\n\r\nLe signifie « uniquement si l'image est plus grande ». Les guillemets sont nécessaires car est interprété par le shell comme une redirection. On peut aussi échapper le caractère avec .\r\n\r\nEn pourcentage\r\n\r\n\r\n\r\nPratique quand on veut diviser la taille par deux sans calculer les dimensions exactes.\r\n\r\n6. Qualité et poids du fichier\r\n\r\nPour les JPEG, le paramètre règle le compromis entre fidélité visuelle et poids du fichier :\r\n\r\n\r\n\r\nQuelques repères en pratique :\r\n100 : qualité maximale, fichier énorme, différence imperceptible avec 95.\r\n85 : la valeur par défaut de la plupart des appareils photo, et un excellent compromis pour le web.\r\n75 : encore très acceptable, gain de place notable.\r\nEn dessous de 70 : les artefacts deviennent visibles, surtout sur les aplats de couleur.\r\n\r\nSupprimer les métadonnées\r\n\r\nLes fichiers issus d'appareils photo ou de smartphones embarquent beaucoup d'informations : modèle de l'appareil, date, parfois coordonnées GPS, miniature intégrée, profil colorimétrique... Tout ça peut peser plusieurs dizaines de kilo-octets, et surtout poser des problèmes de confidentialité.\r\n\r\n\r\n\r\nL'option fait le ménage. À utiliser systématiquement avant de publier des photos sur le web, et indispensable dès qu'on parle de RGPD ou d'anonymisation. Attention en revanche pour la photographie professionnelle où certaines métadonnées (droits d'auteur, profil ICC) peuvent être nécessaires.\r\n\r\n7. Recadrer et adapter à un cadre\r\n\r\nRecadrage classique\r\n\r\n\r\n\r\nLa syntaxe se lit comme une fenêtre qu'on découpe dans l'image : largeur × hauteur, décalée de 100 pixels depuis la gauche et 50 pixels depuis le haut.\r\n\r\nRemplir un cadre exact, sans déformation\r\n\r\nC'est le besoin typique des miniatures de site : on veut toutes les vignettes en 800×600 pile, peu importe le format des photos d'origine.\r\n\r\n\r\n\r\nTrois étapes enchaînées :\r\n\r\n1. redimensionne pour que l'image remplisse le cadre (le inverse la logique habituelle : on prend la plus grande dimension comme contrainte, pas la plus petite).\r\n2. indique qu'on veut centrer le découpage.\r\n3. coupe ce qui dépasse pour obtenir exactement la taille voulue.\r\n\r\nLe résultat : aucune déformation, aucune bande noire, juste un éventuel rognage sur les bords les plus longs.\r\n\r\n8. Traiter un dossier entier\r\n\r\nUne boucle Bash suffit pour convertir tous les PNG d'un dossier en JPEG :\r\n\r\n\r\n\r\nLa syntaxe retire l'extension du nom, on y ajoute . Simple et fiable.\r\n\r\nPour modifier les fichiers sur place, ImageMagick fournit :\r\n\r\n\r\n\r\nCette commande écrase chaque fichier par sa version redimensionnée. C'est rapide et pratique, mais ça veut aussi dire qu'il n'y a pas de retour en arrière : si la commande est mal écrite, le dossier original est perdu. Règle absolue : travailler sur une copie, ou s'assurer d'avoir une sauvegarde.\r\n\r\n9. Texte et filigranes\r\n\r\nApposer une mention textuelle\r\n\r\n\r\n\r\n ancre le texte dans un coin de l'image (les neuf positions classiques : , , , , ...), et ajoute un décalage par rapport à ce point d'ancrage. Ici, éloigne le texte de 10 pixels du coin inférieur droit.\r\n\r\nSuperposer un logo ou un watermark image\r\n\r\n\r\n\r\nL'image principale est lue en premier, le filigrane en second, puis les fusionne. Si le watermark a un canal alpha (transparence), il est respecté.\r\n\r\n10. Couleurs et tons\r\n\r\nPassage en noir et blanc :\r\n\r\n\r\n\r\nRéglage de la luminosité et du contraste (valeurs en pourcentage, positives ou négatives) :\r\n\r\n\r\n\r\nIci, +10% de luminosité et +5% de contraste. Pour assombrir, on utilise des valeurs négatives : .\r\n\r\n11. Inspecter une image\r\n\r\nPour obtenir les informations essentielles — format, dimensions, profondeur :\r\n\r\n\r\n\r\nPour tout savoir, y compris les métadonnées EXIF, le profil colorimétrique, l'histogramme :\r\n\r\n\r\n\r\nLa sortie verbeuse peut faire plusieurs pages, mais c'est inestimable pour diagnostiquer un problème ou comprendre d'où vient un fichier.\r\n\r\n12. Formats modernes\r\n\r\nLe WebP de Google offre une compression nettement meilleure que le JPEG à qualité équivalente, et il est aujourd'hui supporté par tous les navigateurs courants :\r\n\r\n\r\n\r\nL'AVIF va encore plus loin en termes de compression, au prix d'un encodage plus lent :\r\n\r\n\r\n\r\nSi la commande échoue avec une erreur de délégué, c'est que votre installation d'ImageMagick a été compilée sans le support AVIF — il faudra installer ou recompiler.\r\n\r\n13. Quelques règles à se fixer\r\nToujours travailler sur une copie quand on découvre une nouvelle commande. en particulier ne pardonne pas.\r\nStripper les métadonnées avant toute publication web.\r\nPour de très gros volumes (plusieurs milliers d'images, ou des images très lourdes), regarder du côté de : c'est plus rapide et beaucoup moins gourmand en mémoire qu'ImageMagick. Pour tout le reste, ImageMagick est largement suffisant.\r\nAutomatiser dès qu'on répète : si la même commande revient deux fois, elle mérite un script.\r\nLire les messages d'erreur : ImageMagick est verbeux, et la plupart des problèmes (délégué manquant, permissions, format non reconnu) sont explicitement nommés dans la sortie.\r\n\r\n14. Là où on le croise vraiment\r\n\r\nEn pratique, ImageMagick finit presque toujours dans les mêmes situations :\r\npréparation d'images pour un site web (redimensionnement + compression + strip),\r\ngénération de miniatures à la volée côté serveur,\r\nnormalisation d'un catalogue photo hétérogène (formats, tailles, profils),\r\nconversion massive d'archives anciennes vers des formats modernes,\r\nnettoyage des métadonnées avant diffusion publique.\r\n--\r\n\r\nImageMagick fait partie de ces outils qu'on apprivoise lentement mais qu'on garde longtemps. Au début, on copie des commandes trouvées en ligne sans tout comprendre. Puis on commence à reconnaître les options, à les combiner, à écrire ses propres scripts. Et un jour, on se rend compte qu'on a remplacé un logiciel entier par trois lignes de Bash — et qu'on n'a jamais été aussi efficace pour traiter des images."},{"uuid":"1fbc16a5-27e0-46d7-b87b-e840e99419d1","slug":"configuration-de-postfix-avec-un-relais-smtp-externe-utilisant-l-authentification-login-ou-plain","title":"Configuration de Postfix avec un relais SMTP externe utilisant l'authentification LOGIN ou PLAIN","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-05-14 07:52:47","created_at":"2023-05-14 07:52:47","updated_at":"2023-05-14 07:52:47","tags":[],"plain":"Par défaut, Postfix est configuré pour envoyer des e-mails directement au serveur de messagerie du destinataire. Cependant, il est parfois nécessaire de configurer Postfix pour utiliser un relais SMTP externe avec authentification LOGIN ou PLAIN. Éditer le fichier de configuration principal\nLe fichier de configuration principal de Postfix est généralement situé dans le répertoire . Ouvrez ce fichier à l'aide d'un éditeur de texte et recherchez les directives suivantes : Configurer le relais SMTP externe\nModifiez la directive pour spécifier l'adresse du relais SMTP externe que vous souhaitez utiliser. Par exemple, si le relais SMTP externe est et il écoute sur le port , la directive devrait ressembler à ceci : Activer l'authentification PLAIN\nDécommentez la directive en supprimant le # au début de la ligne, puis modifiez sa valeur à : Configurer les informations d'authentification\nAjoutez les informations d'authentification pour le relais SMTP externe en ajoutant les directives suivantes dans le fichier de configuration : Voici ce que font ces options : 1. : Cette option active l'authentification SASL (Simple Authentication and Security Layer) pour les connexions SMTP sortantes. Cela permet à Postfix de s'authentifier auprès du relais SMTP externe en utilisant les informations d'identification fournies. 2. : Cette option active l'authentification SASL pour les connexions SMTP entrantes. Elle permet à Postfix d'accepter les connexions SMTP entrantes et d'authentifier les clients qui se connectent. 3. : Cette option spécifie que Postfix n'accepte pas les connexions anonymes lors de l'authentification SASL. Cela garantit que toutes les connexions SMTP doivent fournir des informations d'identification valides. 4. : Cette option spécifie que lors de l'utilisation de TLS (Transport Layer Security) pour sécuriser les connexions SMTP, les connexions anonymes ne sont pas autorisées. 5. : Cette option indique à Postfix où trouver le fichier de hachage contenant les informations d'identification (nom d'utilisateur et mot de passe) pour l'authentification SASL auprès du relais SMTP externe. Dans cet exemple, le fichier est utilisé et doit être converti en un fichier de hachage à l'aide de la commande . 6. : Cette option active l'utilisation de TLS pour chiffrer les connexions SMTP sortantes. Elle assure que les communications avec le relais SMTP externe sont sécurisées. 7. : Cette option indique à Postfix d'émettre une offre STARTTLS lors de l'établissement d'une connexion SMTP sortante. Cela permet d'initier une négociation TLS avec le relais SMTP externe si celui-ci prend en charge TLS. 8. : Cette option spécifie les mécanismes d'authentification SASL autorisés pour les connexions SMTP sortantes. Dans cet exemple, seuls les mécanismes \"login\" et \"plain\" sont autorisés. Ces options combinées permettent à Postfix de configurer un relais SMTP externe avec authentification PLAIN et d'établir des connexions sécurisées à l'aide de TLS. Cela garantit que les e-mails sont envoyés de manière fiable et en toute sécurité via le relais externe. Créer le fichier de mots de passe SASL\nCréez un fichier et ajoutez les informations d'authentification suivantes : Remplacez par l'adresse du relais SMTP externe, par le port utilisé, par votre nom d'utilisateur de messagerie pour le relais SMTP, et par votre mot de passe associé. Générer le fichier de hachage des mots de passe SASL\nExécutez la commande suivante pour générer le fichier de hachage des mots de passe SASL à partir du fichier : Cette commande va créer un fichier contenant le hachage des mots de passe. Redémarrer POSTFIX"},{"uuid":"5ce0ba61-e5c8-47ee-bb6d-2adc5a393717","slug":"22-2","title":"i915, ou l'art de ne pas faire simple","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:06:44","created_at":"2020-04-17 18:06:44","updated_at":"2020-04-17 18:06:44","tags":[],"plain":"Je viens d'acquérir un ordinateur avec carte vidéo intégrée. Malheureusement cette carte n'est pas supportée en standard par Linux Debian.\\\\\nOn pourrait faire une dissertation sur qu'est-ce une compatibilité Linux et les joies et inconvénients de l'openSource. Je suis très mauvais dans cet exercice. Je préfère laissé cet art aux beaux parleurs, manipulateurs et charlatants. Vous savez, ceux qui vous font croire que vous priver de vos droits, c'est pour votre bien. C'est pour votre créativité. Je m'égare. Rapidement, il y a une carte vidéo intégré qui est un Intel. Après avoir exécuté la commande , j'obtiens Linux a installé les pilotes i915: Mais je reste bloqué sur le même problème. La résolution de l'écran ne veut pas aller plus loin que 1024x768. Je me diriger doucement vers une configuration de Xorg avec xrandr. Voilà les commandes saisies :\n J'ai fini par changer de carte vidéo. J'ai opté pour une NVidia GT710 qui répond au besoin. https:askubuntu.com/questions/776435/i-cant-get-1920x1080-with-intel-linux-graphic-driver https:unix.stackexchange.com/questions/330639/cant-get-past-1024x768-resolution-intel-graphics-xorg-debian-jessie-mate-env http:*xtiming.sourceforge.net/cgi-bin/xtiming.pl"},{"uuid":"ed459227-bc2e-499f-a0a5-c7a4c496a0a1","slug":"20230517-pourquoi-chatgpt-n-est-qu-un-outil-et-pas-une-intelligence","title":"L'incroyable flexibilité de ChatGPT : Répondre de manière affirmative ou négative à la même question","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-05-17 05:44:44","created_at":"2023-05-17 05:44:44","updated_at":"2023-05-17 05:44:44","tags":[],"plain":"Dans le monde de l'intelligence artificielle, les modèles de langage ont connu des avancées spectaculaires ces dernières années. Parmi eux, le modèle CPT (ChatGPT) développé par OpenAI est un véritable prodige de flexibilité et de compréhension contextuelle. Il est capable de répondre à une question de manière affirmative ou négative en fonction du contexte spécifique. Le modèle CPT est entraîné sur d'énormes quantités de données textuelles provenant de diverses sources, ce qui lui permet de développer une compréhension approfondie du langage. Grâce à cette capacité, il peut analyser le contexte global d'une question et ajuster sa réponse en conséquence. Lorsqu'une question est posée de manière, CPT répondra en fonction du contexte qui lui est donné. Il reconnaît les indices et les tournures de phrase afin de répondre. En examinant le contexte et en utilisant ses connaissances préalables, CPT peut générer une réponse qui affirme la véracité de la demande. Exemple : Lorsque le contexte de la question suggère une réponse négative, CPT est capable de l'identifier et de fournir une réponse en conséquence. En prenant en compte les subtilités du langage, telles que les mots de négation ou les contradictions dans la question, CPT peut générer une réponse qui rejette ou nie l'affirmation. La capacité de CPT à fournir des réponses affirmatives ou négatives en fonction du contexte est d'une grande utilité dans de nombreuses situations. Cela lui permet de s'adapter aux différentes intentions de l'utilisateur et de fournir des réponses plus précises et pertinentes. Les réponses du modèle peuvent parfois sembler déroutantes ou incorrectes aux yeux des humains. Cela peut être dû à une interprétation inexacte de la question ou à une réponse générée à partir d'un contexte qui diffère de celui que nous avons en tant qu'humains. Il est essentiel de comprendre que les modèles de langage, y compris CPT, sont des outils basés sur des statistiques et des modèles mathématiques, et ils ne possèdent pas une compréhension et une interprétation du monde de la même manière que les êtres humains."},{"uuid":"63b332d4-e480-4fcd-a73a-90a0a5ff2a77","slug":"20230127-saut-de-ligne-en-debut-ou-fin-de-ligne","title":"Saut de ligne en début ou fin de ligne ?","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-01-28 11:24:37","created_at":"2023-01-28 11:24:37","updated_at":"2023-01-28 11:24:37","tags":[],"plain":"En PHP, il n'y a pas de différence majeure entre placer un (code new line) en début ou fin de ligne dans un . En utilisant un en fin de ligne, cela a pour effet de créer un saut de ligne à la fin de la chaîne affichée. Cela peut être utile si vous voulez que le prochain contenu affiché soit sur une ligne distincte. En utilisant un en début de ligne, cela a pour effet de créer un saut de ligne avant le contenu affiché. Cela peut être utile si vous voulez que le contenu précédent soit sur une ligne distincte. Cela dépend de l'objectif que vous voulez atteindre, mais en général il est plus courant de mettre un en fin de ligne pour séparer les différentes parties d'un texte. Dans un contexte de sortie HTML, l'utilisation de '\\n' ne fera pas de saut de ligne, il faudra utiliser la balise pour faire un saut de ligne."}]