Script et programme pour enlever un rectangle en bas d'image

URL: http://www.poirrier.be/~jean-etienne/info/rmpos/index.php

Article écrit le 21 septembre 2005
Mis à jour le 21 décembre 2005

Introduction

Ce document présente un script et un programme qui permet d'enlever un rectangle en bas d'une image. Ce rectangle peut contenir un texte que vous ne voulez pas/plus ou toute autre chose. Vous pouvez lancer The Gimp ou Photoshop et enlever le texte. Cà va commencer à être pénible si vous avez plus de 5 images à modifier ... (et puis, avec le script, quelle joie de pouvoir tout faire en une seule ligne de commande ;-)).

Avertissement (disclaimer)

Ce script et ce programme ont été écrits pour me permettre d'enlever le texte ajouté par Poseidon Community Edition (Gentleware) en bas des images exportées. Je respecte le travail de Gentleware et je comprends parfaitement qu'ils ajoutent cette ligne sur les images issues de la version Community. Simplement, il peut se produire des cas où il empêche la bonne lisibilité du diagramme (notamment à des fins éducatives). Ce ne sont donc que des outils : à vous d'en faire bon usage !

Script sous Linux

Téléchargez le script (archive gzip de 0.6ko)

Pour faire tourner ce script, vous avez besoin de bash, sed, awk, bc et ImageMagick. Ces outils sont normalement installés avec toutes les distributions Linux courantes.

Le script est distribué suivant les termes de la GNU GPL. Vous pouvez donc le modifier comme vous le souhaitez.

  • Installation : téléchargez le script, décompressez l'archive (gunzip rmpos.sh.gz), éventuellement rendez le fichier exécutable (chmod 755 rmpos.sh)
  • Utilisation : soit "original.png" votre image à modifier, lancez la commande ./rmpos.sh original.png et le script vous sortira un fichier "original-crop.png" à la taille voulue

Programme sous MS-Windows

Téléchargez le code source C# (archive zip de 58ko)

Téléchargez le programme uniquement (archive zip de 6.8ko)

Pour faire tourner ce programme, vous avez besoin du framework .Net de Microsoft. Si vous mettez régulièrement à jour votre MS-Windows XP, vous devriez déjà l'avoir. De toutes façons (XP ou versions antérieures de Windows), vous pouvez le télécharger gratuitement sur le site de Microsoft.

Le programme est distribué suivant les termes de la GNU GPL. Vous pouvez donc le modifier comme vous le souhaitez.

  • Installation : téléchargez le programme et décompressez l'archive (avec winzip ou un outil libre comme 7-zip) dans un répertoire quelconque de votre disque dur. Vous pouvez le lancer, maintenant !
  • Utilisation :
    1. lancez le programme
    2. cliquez sur le bouton ouvrir pour choisir le fichier que vous voulez traiter ; un aperçu de l'image est affiché en bas
    3. cliquez sur le bouton couper pour traiter l'image ; la boîte d'état, au milieu, vous renseigne si tout s'est bien passé
    4. le fichier modifié se trouve dans le même répertoire que le fichier original ; son nom posséde la chaîne "-crop" en plus

Bug connu

Pour une raison obscure, l'aperçu n'est pas complet lorsque le chemin + nom du fichier est très long ou lorsque la fenêtre doit être redessinée par Windows. Cela n'affecte en rien les images originale et finale : elles ont toujours la même qualité.

Technique

La méthode employée est très simple ... Vous prenez une image exportée et vous vous rendez compte que les 30 derniers pixels en hauteur contiennent cette ligne de texte.

Le script utilise l'outil identify pour vérifier qu'il s'agit bien d'une image png et extraire les valeurs de largeur et de hauteur. Il soustrait 30 pixels de la hauteur (vous pouvez changer cette valeur dans le script, si vous le souhaitez : variable crop_height). Et convertit (avec l'outil ... convert) votre image à la bonne taille.

Le programme ne vérifie pas si c'est bien une image (mais vous aurez une erreur parce qu'il essaie quand même de l'afficher). Il ouvre l'image et la place dans un objet Image. Il en extrait les valeurs de largeur et de hauteur. Il soustrait 29 pixels de la hauteur (vous pouvez changer cette valeur dans l'interface, si vous le souhaitez). Ensuite, le programme clone l'image originale dans une nouvelle image avec la nouvelle hauteur. Et, finalement, il enregistre votre image à la bonne taille.

Un petit exemple ... Avant :

image non coupée

Appliquons ./rmpos.h exemple.png et nous obtenons :

image coupée

Voilà ! :-) (Je me rends compte que cette page web est même plus longue que le script pour Linux !)

En cas que problème, question, commentaire, vous pouvez me contacter à "jepoirrier chez gmail point com".