1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD transformer une image 5 états en 5 images différentes

Discussion dans 'Windev' créé par popoy, Juin 14, 2026.

  1. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    3,136
    J'aime reçus:
    1,688
    Bonjour a tous,
    Quel serait selon vous le code pour transformer une image 5 états en 5 images différentes
    Exemple d'image en pièce jointe
    Merci de votre aide
     

    Fichiers attachés:

  2. SavageBeast

    SavageBeast Active Member

    Inscrit:
    Juin 14, 2018
    Messages:
    142
    J'aime reçus:
    89
    Salut Popoy, J'ai un "fu-script" pour GIMP si cela t'intéresse qui transforme une image simple en image 5 états. En gros, pour séparer les images 5 états et en faire 5 images différentes, tu dois prendre la largeur de l'image de base et diviser par 5 pour obtenir la taille exacte. Ainsi tu peux prendre l'image de base 5 états, et extraire chaque état. Je ferais cela dans un champ image, ce ne doit pas être très compliqué.

    Image 1 = x=1, longueur 32
    Image 2 = x=33, longueur 32
    Image 3= x=65, longueur 32
    etc.

    A+
     
  3. ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    381
    J'aime reçus:
    374
    Code (Python):

    from PIL import Image

    # Charger l'image
    img = Image.open("boutons.png")

    # Dimensions de l'image
    largeur, hauteur = img.size

    # Nombre d'états
    nb_etats = 5

    # Largeur d'un état
    largeur_etat = largeur // nb_etats

    # Découpage
    for i in range(nb_etats):
        x1 = i * largeur_etat
        x2 = (i + 1) * largeur_etat

        etat = img.crop((x1, 0, x2, hauteur))
        etat.save(f"etat_{i+1}.png")

    print("Extraction terminée")

     
     
  4. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    520
    J'aime reçus:
    748
    Bonjour

    Ref:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Code (Windev):
    MonImageDécoupée est une Image
    MonImage est une Image
    MonImage = "Image.png"

    MonImageDécoupée =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (MonImage, 10, 10, 100, 100)
     
  5. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    645
    J'aime reçus:
    364
    Bonjour,
    Code (Windev):
    FONCTION Split5Etats(LOCAL o5Etat est Image) : tableau de Image
    nOffset est entier    //Offset nécessaire pour "positionner" l'origine de la "sous-image" traitée
    nNoImage est un entier //No de la "sous-image" traitée
    tabSplit est tableau de 5 Image //Ensemble des sous images

    nOffset=o5Etat..Largeur/5 //Calcul de l'offset

    POUR nNoImage=1 À 5
        tabSplit[nNoImage]=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (o5Etat,(nNoImage-1)*nOffset,0,nOffset,o5Etat..Hauteur)
    FIN

    RENVOYER tabSplit
     
    Utilisation :
    Code (Windev):
    saChemin5Etats est une chaîne
    tabSplit est tableau de Images

    saChemin5Etats=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("","","Sélectionnez une image à décomposer")

    tabSplit=Split5Etats(

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saChemin5Etats))
     
     
    #5 Dandypunk, Juin 16, 2026
    Dernière édition: Juin 16, 2026
  6. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    3,136
    J'aime reçus:
    1,688
    Salut a tous et merci de vos réponses
    voici mon code inspirés des votre
    Code (Text):
    //Variables
    InfoImage, Format    sont des chaînes
    Hauteur, Largeur    sont des entiers
    nOffset                est entier        //Offset nécessaire pour "positionner" l'origine de la "sous-image" traitée
    nNoImage            est un entier    //No de la "sous-image" traitée
    sNomimage            est une chaîne
    Monimage            est une Image
    nBetat                est un entier

    //début
    sNomimage    = SAI_Texte
    Monimage    = SAI_Texte
    nBetat        = SAI_NBRE_ETAT
    tabSplit        est tableau de nBetat Image    //Ensemble des sous images
    sNomimagetemp    est une chaîne
    // Récupération des caractéristiques de l'image
    InfoImage        = InfoBitmap(sNomimage)
    Format            = ExtraitChaîne(InfoImage, 1)
    Largeur            = Val(ExtraitChaîne(InfoImage, 2))
    Hauteur            = Val(ExtraitChaîne(InfoImage, 3))
    // Affichage des caractéristiques
    //Info("Format de l'image : " + Format, "Largeur : " + Largeur, "Hauteur : " + Hauteur)
    nOffset            = Largeur/nBetat //Calcul de l'offset
    //nom de l'image
    sNomimage    = fExtraitChemin(sNomimage, fFichier)

    //dDécoupe l"image
    POUR nNoImage=1 À nBetat
        tabSplit[nNoImage]    = dDécoupe(Monimage,(nNoImage-1)*nOffset,0,nOffset,Hauteur)
        //construction du nom de l'image à sauvegarder
        sNomimagetemp        = sNomimage + "" + nNoImage
     
        //sauvegarde l'image dans la bonne extension
        SELON Format
            CAS "bmp","BMP"
                dSauveImageBMP(tabSplit[nNoImage],sNomimagetemp+".bmp")
            CAS "gif","GIF"
                dSauveImageGIF(tabSplit[nNoImage],sNomimagetemp+".gif")
            //CAS "ico","ICO"
                monicone est une Icône
                monicone = tabSplit[nNoImage]
                dSauveImageICO(monicone,sNomimagetemp+".ico")
            CAS "jpg","jpeg","JPG","JPEG"
                dSauveImageJPEG(tabSplit[nNoImage],sNomimagetemp+".jpg")
            CAS "png","PNG"
                dSauveImagePNG(tabSplit[nNoImage],sNomimagetemp+".png")
            CAS "tif","TIFF"
                monimagetemp est un Tiff
                monimagetemp  = tabSplit[nNoImage]
                sName est une chaîne
                sName =  sNomimagetemp+".tif"
                dSauveImageTIFF(monimagetemp,sName)
            AUTRE CAS
                Info("Format de l'image : " + Format, "Largeur : " + Largeur, "Hauteur : " + Hauteur)
        FIN
    FIN
    Info("Extraction effectué")
     
     
    WX1331 apprécie ceci.

Partager cette page

Chargement...