[..] Modifier une image bmp
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
[..] Modifier une image bmp
Bonjour,
J'ai un fichier .bmp et je voudrais faire un script qui puisse transformer tous les pixels de couleur 0xff0000 en 0x00ff00 et d'enregistrer le nouveau fichier.
Ma question est :
- Existe-t-il une fonction qui puisse lire le fichier et retourner les pixels sous une certaine forme (array, string, ou autre) ?
- Existe-t-il une fonction qui permet d'enregistrer à nouveau le fichier à partir de ce qui a été retourné par la première fonction (et que j'aurai modifié au préalable) ?
Merci de votre aide
J'ai un fichier .bmp et je voudrais faire un script qui puisse transformer tous les pixels de couleur 0xff0000 en 0x00ff00 et d'enregistrer le nouveau fichier.
Ma question est :
- Existe-t-il une fonction qui puisse lire le fichier et retourner les pixels sous une certaine forme (array, string, ou autre) ?
- Existe-t-il une fonction qui permet d'enregistrer à nouveau le fichier à partir de ce qui a été retourné par la première fonction (et que j'aurai modifié au préalable) ?
Merci de votre aide
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Modifier une image bmp
J'ai jeté un oeil dans la doc, et rien vu de tel.
Par contre peut être certaines nouvelles fonction GDI peuvent aider, mais je vois pas trop comment.
Par contre peut être certaines nouvelles fonction GDI peuvent aider, mais je vois pas trop comment.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Modifier une image bmp
J'ai trouvé les fonctions suivantes :
_GDIPlus_ImageLoadFromFile, qui retourne un "handle to an image object".
_GDIPlus_ImageSaveToFile, qui enregistre une image à partir d'un "handle to an image object".
Par contre, pour modifier l'image, je n'ai pas trouvé de fonction, notamment pour ce qui est de lire la couleur des pixels.
_GDIPlus_ImageLoadFromFile, qui retourne un "handle to an image object".
_GDIPlus_ImageSaveToFile, qui enregistre une image à partir d'un "handle to an image object".
Par contre, pour modifier l'image, je n'ai pas trouvé de fonction, notamment pour ce qui est de lire la couleur des pixels.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Modifier une image bmp
Je dirais qu'il faut sans doute faire une boucle sur la surface totale du bitmap, et utiliser la fonction :pour récupérer la couleur de chaque pixel et utiliser la fonction pour faire le remplacement de couleur.
Je n'ai rien essayé, mais ça me parait logique.
Code : Tout sélectionner
PixelGetColor ( x , y )
Code : Tout sélectionner
GUICtrlSetGraphic ( controlID, type [, par1 [, ... par6]] )
Je n'ai rien essayé, mais ça me parait logique.

Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Modifier une image bmp
oui maisretourne la couleur des pixels de l'écran
, et pas de ceux du "handle to an image object".
Code : Tout sélectionner
PixelGetColor ( x , y )

-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Modifier une image bmp
J'ai essayé ce bout de code :mais l'image de sortie est identique à celle de départ donc la fonction :ne me semble pas être adapté dans ce cas (l'image n'est de toute façon pas un contrôle GUI ^^)
Code : Tout sélectionner
:#include <GUIConstants.au3>
#include <GDIPlus.au3>
$fichier = FileOpenDialog("Choisissez une image bitmap", @ScriptDir, "Fichiers bitmap (*.bmp)")
_GDIPlus_Startup()
$himage = _GDIPlus_ImageLoadFromFile($fichier)
GUICtrlSetGraphic($himage, $GUI_GR_COLOR, 0xff0000)
For $x = 1 To _GDIPlus_ImageGetWidth($himage)
For $y = 1 To _GDIPlus_ImageGetHeight($himage)
GUICtrlSetGraphic($himage, $GUI_GR_PIXEL, $x, $y)
Next
TrayTip($fichier, "col : " & $x, 5) ; permet de tester la colonne en cours
Next
_GDIPlus_ImageSaveToFile($himage ,StringTrimRight($fichier, 4) & "2.bmp")
_GDIPlus_ShutDown()
Code : Tout sélectionner
GUICtrlSetGraphic
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Modifier une image bmp
Sinon, n'y-a-t-il pas moyen de lire les pixels directement dans le fichier avec des FileRead pour les modifier ?
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Modifier une image bmp
Bon j'ai cherché sur le forum anglais et j'ai finalement trouvé : http://www.autoitscript.com/forum/index ... l=lockbits
Le code ajoute un carré vert à l'image chargée.
► Afficher le texteexemple de code