[R] Modifier les couleurs des pixels

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

[R] Modifier les couleurs des pixels

#1

Message par karime1 »

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
Modifié en dernier par karime1 le sam. 29 oct. 2011 16:48, modifié 1 fois.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Modifier les couleurs des pixels

#2

Message par PandiPanda »

Pour faire avancé un peu :P

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 ... ^^
Il faudrai maintenant parcourir le tout par une double boucle for ... next et chercher ce que vous voulez et le remplacer :P

Ps: je passe la main ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Modifier les couleurs des pixels

#3

Message par karime1 »

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
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Modifier les couleurs des pixels

#4

Message par PandiPanda »

sinon j'ai vu ca sur ce forum en faisant une petite recherche ^^

ici
peut être cela pourrai vous être utile?
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [.R.] Modifier les couleurs des pixels

#5

Message par karime1 »

merci
► Afficher le texte
Avatar du membre
PandiPanda
Membre émérite
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

#6

Message par PandiPanda »

Même si votre post est résolu, voici la réponse pour créer une image avec les pixel ^^
► Afficher le texte
j'ai repris votre "modification" avec l'array qui contient les "0" & "1" et donc crée une image avec celle ci !
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Répondre