( je pense pas que ce soit déjà demander )
[R] Ouvrir et Modifier un image
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.
[R] Ouvrir et Modifier un image
Bonjour tout le monde, je souhaiterai connaitre la meilleur technique pour ouvrir et modifier pixel par pixel une image avec autoit merci 
( je pense pas que ce soit déjà demander )
( je pense pas que ce soit déjà demander )
Modifié en dernier par L4crymal le sam. 06 juin 2009 22:18, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Moi je dirais :

Code : Tout sélectionner
$Image = @WindowsDir & "\winnt256.bmp"
ShellExecute("mspaint.exe", $Image)
WinWait("Paint")
Opt("SendKeyDelay",100)
Send('!AZP')
Send('{RIGHT 4}{ENTER}')
MsgBox(64,"YEAAAAA","Ca c'est du zoom ...")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é".
Re: [..] Ouvrir et Modifier un image
Et + serieusement ?
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Heuuu, je n'en sais fichtre rien et pour l'instant, je n'ai pas vraiment le temps de regarder.
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é".
Re: [..] Ouvrir et Modifier un image
Oups... Si Thierry ne sais pas... Alors qui peut savoir 
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Je trouve, que parfois on me surestime un peut trop ...
Je ne suis qu'un bricoleur du Dimanche.
Je ne suis qu'un bricoleur du Dimanche.
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é".
Re: [..] Ouvrir et Modifier un image
Et puis quoi encore? t'es juste le meilleur quoi...
Bref on s'écarte là :p
Quelqu'un sait comment sont codées les image que ce soit PNJ,BMP ou GIF
Bref on s'écarte là :p
Quelqu'un sait comment sont codées les image que ce soit PNJ,BMP ou GIF
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Pfffff ...
Portnawak.
Portnawak.
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é".
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Ben... si t'es motivé... tu peux modifier un .bmp facilement, ya juste quelque octés au début pour le définir, puis tout les pixels sont exprimés un a un en commencant en bas a gauche
Par exemple, pour un petit bmp crée avec pain, j'ai
Puis chaque pixel sous la forme BB VV RR
Enfin... c'est un peu barbar et ya sans doute mieux a faire, mais ca marche....
Par exemple, pour un petit bmp crée avec pain, j'ai
Code : Tout sélectionner
42 4D EA 00 00 00 00 00 00 00 36 00 00 00 28 00
00 00 13 00 00 00 03 00 00 00 01 00 18 00 00 00
00 00 B4 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00Enfin... c'est un peu barbar et ya sans doute mieux a faire, mais ca marche....
Signez ici
Re: [..] Ouvrir et Modifier un image
En faite j'aimerais juste savoir comment créer une image ( bmp ou autre ) seulement en disant un part un les pixel que je veut par exemple:
je créer une fonction qui ajoute un pixel à l'image ( qui ne fait que un pixel de hauteur ) en largeur et qui prend seulement en paramètre la couleur que je veux, c'est possible ?
je créer une fonction qui ajoute un pixel à l'image ( qui ne fait que un pixel de hauteur ) en largeur et qui prend seulement en paramètre la couleur que je veux, c'est possible ?
Re: [..] Ouvrir et Modifier un image
J'ai trouver ça pour lire une image BMP
( le fichier fait dabbord une MSGBOX avec la couleur du premier pixel en haut a gauche, puis il lit les 20 premiers pixels et met leur couleur dans un fichier texte )
PLUS QUE A TROUVER POUR ÉDITER CES PIXELS !
Code : Tout sélectionner
;
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
Local $hBitmap
_GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromFile("test.bmp"); Enter path/name of image file here.
MsgBox(0, "", _GDIPlus_BitmapGetPixel($hBitmap, 0,0)); 0,0 is top left corner pixel of image.
For $i=1 to 20
FileWrite("ici.txt",_GDIPlus_BitmapGetPixel($hBitmap, $i, 0)&@CRLF)
Next
; Clean up resources
_GDIPlus_ImageDispose($hBitmap)
; Shut down GDI+ library
_GDIPlus_Shutdown()
Func _GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)
Local $tArgb, $pArgb, $aRet
$tArgb = DllStructCreate("dword Argb")
$pArgb = DllStructGetPtr($tArgb)
$aRet = DllCall($ghGDIPDll, "int", "GdipBitmapGetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "ptr", $pArgb)
Return "0x" & Hex(DllStructGetData($tArgb, "Argb"))
EndFunc ;==>_GDIPlus_BitmapGetPixel
;s
PLUS QUE A TROUVER POUR ÉDITER CES PIXELS !
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
C'est quasiment la même chose pour les éditer :
(avec $iARGB = alpha, rouge, vert, bleu)
http://msdn.microsoft.com/en-us/library/ms533971.aspx
http://msdn.microsoft.com/en-us/library ... S.85).aspx
(avec $iARGB = alpha, rouge, vert, bleu)
Code : Tout sélectionner
Func _GDIPlus_BitmapSetPixel($hBitmap, $iX, $iY, $iARGB = 0xFF000000)
DllCall($ghGDIPDll, "int", "GdipBitmapSetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "dword", $iARGB)
EndFunc ;==>_GDIPlus_BitmapSetPixelhttp://msdn.microsoft.com/en-us/library ... S.85).aspx
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Ouvrir et Modifier un image
Eu comment? j'ai essayer comme ça mais aucun resultat :
Code : Tout sélectionner
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
Local $hBitmap
_GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromFile("Image.bmp"); Enter path/name of image file here.
For $i=1 to 20
_GDIPlus_BitmapSetPixel($hBitmap, $i,$i)
Next
; Clean up resources
_GDIPlus_ImageDispose($hBitmap)
; Shut down GDI+ library
_GDIPlus_Shutdown()
Func _GDIPlus_BitmapSetPixel($hBitmap, $iX, $iY, $iARGB = 0xFF000000)
DllCall($ghGDIPDll, "int", "GdipBitmapSetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "dword", $iARGB)
EndFunc ;==>_GDIPlus_BitmapSetPixel- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
heu, je vais essayer de tester ca dans l'aprem, mais peut etre qu'il faudrait un _GDIPlus_ImageSaveToFile($hBitmap,"Image2.bmp")
Edit ; Je confirme, ce code est fonctionel
PS : Merci d'avoir posé la question, je sent que ca va m'ammuser ce truc ^^
Edit ; Je confirme, ce code est fonctionel
Code : Tout sélectionner
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
Local $hBitmap
_GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromFile("img.bmp"); Enter path/name of image file here.
For $i=1 to 20
_GDIPlus_BitmapSetPixel($hBitmap, $i,$i,0x50500000)
Next
_GDIPlus_ImageSaveToFile($hBitmap,"Image2.bmp")
; Clean up resources
_GDIPlus_ImageDispose($hBitmap)
; Shut down GDI+ library
_GDIPlus_Shutdown()
Func _GDIPlus_BitmapSetPixel($hBitmap, $iX, $iY, $iARGB = 0xFF000000)
DllCall($ghGDIPDll, "int", "GdipBitmapSetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "dword", $iARGB)
EndFunc ;==>_GDIPlus_BitmapSetPixelSignez ici
Re: [..] Ouvrir et Modifier un image
TROP BIEN MERCI !!!
Mais eu c'est possible d'ajouter aussi des pixels? car si on édite des pixels qui n'existe pas encore, malheureusement ça ne fonctionne pas
Mais eu c'est possible d'ajouter aussi des pixels? car si on édite des pixels qui n'existe pas encore, malheureusement ça ne fonctionne pas
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Alors, apres quelque recherche, il te faudra surement créer l'image de toute piece.
Créer un BMP n'est pas si dur, mais le modifier demande quand meme quelque calcule.
Si tu as le courage, lis ces deux page, et bonne chance ^^
http://www.commentcamarche.net/contents ... t-bmp.php3
http://www.rcweb.fr/image/bmp.html
Créer un BMP n'est pas si dur, mais le modifier demande quand meme quelque calcule.
Si tu as le courage, lis ces deux page, et bonne chance ^^
http://www.commentcamarche.net/contents ... t-bmp.php3
http://www.rcweb.fr/image/bmp.html
Code : Tout sélectionner
#Include <String.au3>
$largeur = 86
$hauteur = 150
$Poid_Image = $largeur*$hauteur*3
$NB_pixel = $Poid_Image
$Poid_Fichier = $Poid_Image+54
$largeur = StringRegExp(Hex($largeur),"0*([0-9]*)",1)
$largeur = $largeur[0] & _StringRepeat ("0",8-StringLen ($largeur[0]))
$hauteur = StringRegExp(Hex($hauteur),"0*([0-9]*)",1)
$hauteur = $hauteur[0] & _StringRepeat ("0",8-StringLen ($hauteur[0]))
$Poid_Image = StringRegExp(Hex($Poid_Image),"0*([0-9]*)",1)
$Poid_Image = $Poid_Image[0] & _StringRepeat ("0",8-StringLen ($Poid_Image[0]))
$Poid_Fichier = StringRegExp(Hex($Poid_Fichier),"0*([0-9]*)",1)
$Poid_Fichier = $Poid_Fichier[0] & _StringRepeat ("0",8-StringLen ($Poid_Fichier[0]))
$image = "424D"
$image &= $Poid_Fichier
$image &= "00000000"
$image &= "36000000"
$image &= "28000000"
$image &= $hauteur
$image &= $largeur
$image &= "0100"
$image &= "1800"
$image &= "00000000"
$image &= $Poid_Image
$image &= "C40E0000"
$image &= "C40E0000"
$image &= "00000000"
$image &= "00000000"
For $i = 1 To $NB_pixel*3
$image &= Hex(Random(1,255))
Next
;~ $image &= "FF0000000000FF00FFFFFFFF0000FF00FF0000FFFFFFFF00"
$file = FileOpen("Tsete.bmp",18)
FileWrite($file,_HexToString($image))
Modifié en dernier par Iste le sam. 06 juin 2009 23:57, modifié 1 fois.
Signez ici
Re: [..] Ouvrir et Modifier un image
Ouais mais j'ai pas compris un petit truc ( la taille en octet de l'image est immense comparée à la réel taille de l'image ), petite explication pliz ? 
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Ouvrir et Modifier un image
Ben heu... non :/ c'est normal (je crois)
Il faut 3octé par pixel
Donc Largeur*Hauteur*3 = taille de l'image
Sinon tu peux encoder avec moins d'octé par pixel et perdre de la qualité (voir mes précédent liens)
C'est bien ca ? ou on parle pas du meme truc ?
Edit d'ailleur je me suis planté dans mon script,c'est $Poid_Image = $largeur*$hauteur*3
mais bon, ca marche quand meme (ou alors je me suis pas planté, et je comprend plus ce que j'ai fais ^^')
Edit 2 : Je confirme, ya plein d'erreur dans mes calcul de poids, mais j'ai fais ca a la va vite
Quand jouvre l'image sous paint (ca marche ^^) et que je la réengistre, il change des trucs, donc c'est bien que ca lui plaisait pas. Reste a compendre pk...
Il faut 3octé par pixel
Donc Largeur*Hauteur*3 = taille de l'image
Sinon tu peux encoder avec moins d'octé par pixel et perdre de la qualité (voir mes précédent liens)
C'est bien ca ? ou on parle pas du meme truc ?
Edit d'ailleur je me suis planté dans mon script,c'est $Poid_Image = $largeur*$hauteur*3
mais bon, ca marche quand meme (ou alors je me suis pas planté, et je comprend plus ce que j'ai fais ^^')
Edit 2 : Je confirme, ya plein d'erreur dans mes calcul de poids, mais j'ai fais ca a la va vite
Quand jouvre l'image sous paint (ca marche ^^) et que je la réengistre, il change des trucs, donc c'est bien que ca lui plaisait pas. Reste a compendre pk...
Modifié en dernier par Iste le sam. 06 juin 2009 22:31, modifié 2 fois.
Signez ici
Re: [..] Ouvrir et Modifier un image
AAAAAAAAAAAAAA D'ACCORD, Merci encore beaucoup pour ton aide c'est super sympa de pouvoir compter sur toi merci merci merci^^

