bonjours,
je cherche un moyen pour pouvoir rendre tout les pixels d'une image noir a part ceux dont le code est égale a 0xFDFDFD ou plus.
merci
[R] Modifier les couleurs des pixels
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] Modifier les couleurs des pixels
Modifié en dernier par karime1 le sam. 29 oct. 2011 16:48, modifié 1 fois.
- PandiPanda
- Membre émérite

- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] Modifier les couleurs des pixels
Pour faire avancé un peu 
L'image en question, on peux l'afficher à l'ecran = monopolise l'ecran pour un moment
Ou il faut obligatoirement que tous ce fasse en "mémoire" sans passer par l'ecran?
en gros voici un script qui permet de recuperer dans un array 2D les pixels
Il faudrai maintenant parcourir le tout par une double boucle for ... next et chercher ce que vous voulez et le remplacer 
Ps: je passe la main ...
L'image en question, on peux l'afficher à l'ecran = monopolise l'ecran pour un moment
Ou il faut obligatoirement que tous ce fasse en "mémoire" sans passer par l'ecran?
en gros voici un script qui permet de recuperer dans un array 2D les pixels
► Afficher le texteca vien du fofo anglais ... ^^
Ps: je passe la main ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Re: [..] Modifier les couleurs des pixels
merci pour ton idée. j'ai refait la func, maintenant j'obtient une array beaucoup plus lègère puisque j'ai directement 1 et 0 (blanc ou noir). tout ce qui reste a faire c'est de reconstituer une image a partir de l'array
Code : Tout sélectionner
Dim $pix_true_color
Func _GetArrayColorPixelFromImg($Path)
If $Path = "" Then
SetError(1);erreur parametre
Return -1
EndIf
_GDIPlus_Startup()
Local $hImage, $width, $height, $hBmp, $aSize
$hImage = _GDIPlus_ImageLoadFromFile($Path)
$width = _GDIPlus_ImageGetWidth($hImage)
$height = _GDIPlus_ImageGetHeight($hImage)
$hBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$aSize = DllCall('gdi32.dll', 'int', 'GetBitmapBits', 'ptr', $hBmp, 'int', 0, 'ptr', 0)
If $aSize[0] Then
Local $tBits, $sHex, $pix[$height][$width], $aTemp, $aArr
$tBits = DllStructCreate('byte[' & $aSize[0] & ']')
DllCall('gdi32.dll', 'int', 'GetBitmapBits', 'ptr', $hBmp, 'int', $aSize[0], 'ptr', DllStructGetPtr($tBits))
$sHex = Hex(DllStructGetData($tBits, 1))
$sHex = StringRegExpReplace($sHex, "([[:xdigit:]]{6})(FF)", "\1 ")
$aArr = StringRegExp($sHex, "(.{" & ($width * 7) & "})", 3)
For $x = 0 To UBound($aArr) - 1
$aTemp = StringRegExp($aArr[$x] & " ", "(.{6}) ", 3)
For $y = 0 To UBound($aTemp) - 1
$pix_true_color = StringRegExpReplace($aTemp[$y], "(.{2})(.{2})(.{2})", "\3\2\1") ; To RGB format
If Number("0x" & $pix_true_color) >= 16645629 Then ; Number(0xFDFDFD)=16645629
$pix[$x][$y] = "1";blanc
Else
$pix[$x][$y] = "0" ; noir
EndIf
Next
Next
_WinAPI_DeleteObject($hBmp)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Return $pix
EndIf
EndFunc ;==>_GetArrayColorPixelFromImg- PandiPanda
- Membre émérite

- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] Modifier les couleurs des pixels
sinon j'ai vu ca sur ce forum en faisant une petite recherche ^^
ici
peut être cela pourrai vous être utile?
ici
peut être cela pourrai vous être utile?
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Re: [.R.] Modifier les couleurs des pixels
merci
► Afficher le texte
- PandiPanda
- Membre émérite

- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [R] Modifier les couleurs des pixels
Même si votre post est résolu, voici la réponse pour créer une image avec les pixel ^^
j'ai repris votre "modification" avec l'array qui contient les "0" & "1" et donc crée une image avec celle ci !
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie

