IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

image très bizare avec PIL et Pygame


Sujet :

GUI Python

  1. #1
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut image très bizare avec PIL et Pygame
    Bonjour,
    je voudrai faire un programme pour faire des stereogrammes
    pour le relief,je sais déja comment faire
    mais mon seul probleme est que je veut charger une image dans une matrice,celle ci:
    Nom : bande.png
Affichages : 237
Taille : 19,2 Ko
    pour ensuite l'afficher plusieurs fois côte à côte,mais il y a apparemment un probleme car j'obtient ça:
    Nom : hein.png
Affichages : 301
Taille : 56,4 Ko
    avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    from numpy import*
    import pygame
    from pygame.locals import *
    import Image
    def pycode(c_1,c_2,c_3):
        return c_3+c_2*256+c_1*256**2
    im = Image.open("bande.png")
    img = list(im.getdata())
    bande=zeros((100,480))
    for i in range(100):
        for j in range(480):
            bande[i][j]=pycode(img[i*j+j][0],img[i*j+j][1],img[i*j+j][2])
    ##bande=random.rand(100, 480) * 255 * 255 * 255
    M=zeros((600,480))
    for i in range(480):
        pos,dec=0,0
    ##    if i>240:
    ##        dec=59.9
        for j in range(600):
    ##        if i<240:
    ##            dec+=j/3000.0
    ##        else:
    ##            dec-=j/3000.0
            pos=(pos+1)%100
            try:
                M[j][i]=bande[int(pos+dec)%100][i]
            except:
                pass
    M.astype(uint32)
    hM=len(M)
    lM=len(M[0])
    print hM,lM
    pygame.init()
    fenetre = pygame.display.set_mode((hM,lM))
    pygame.surfarray.blit_array(fenetre,M)
    continuer = True
    while continuer:
        pygame.time.Clock().tick(3)
        pygame.display.flip()
        for event in pygame.event.get():
    		if event.type == QUIT:
    			continuer = False
    pygame.quit()

  2. #2
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    finalement,j'ai reussi avec une autre technique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    from numpy import*
    import pygame
    from pygame.locals import *
    import Image
    def pycode(c_1,c_2,c_3):
        return c_3+c_2*256+c_1*256**2
    im = Image.open("bande.png")
    img = list(im.getdata())
    bande=zeros((100,480))
    for i in range(48000):
        bande[i%100][int(i/100)]=pycode(img[i][0],img[i][1],img[i][2])
    ##bande=random.rand(100, 480) * 255 * 255 * 255
    M=zeros((600,480))
    for i in range(480):
        pos,dec=0,0
    ##    if i>240:
    ##        dec=59.9
        for j in range(600):
    ##        if i<240:
    ##            dec+=j/3000.0
    ##        else:
    ##            dec-=j/3000.0
            pos=(pos+1)%100
            try:
                M[j][i]=bande[int(pos+dec)%100][i]
            except:
                pass
    M.astype(uint32)
    hM=len(M)
    lM=len(M[0])
    print hM,lM
    pygame.init()
    fenetre = pygame.display.set_mode((hM,lM))
    pygame.surfarray.blit_array(fenetre,M)
    continuer = True
    while continuer:
        pygame.time.Clock().tick(3)
        pygame.display.flip()
        for event in pygame.event.get():
    		if event.type == QUIT:
    			continuer = False
    pygame.quit()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Generer une image bitmap 24 bits avec PIL
    Par scheme dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 07/09/2009, 10h16
  2. Afficher une image avec PIL
    Par laurent25 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 17/10/2008, 12h42
  3. Création d'images avec PIL
    Par lempo dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 07/03/2008, 21h04
  4. Afficher une image avec PIL
    Par O_connor dans le forum Tkinter
    Réponses: 3
    Dernier message: 12/04/2007, 14h39
  5. [Tkinter] Insérer une image jpg sur un canvas avec PIL
    Par Kyojimbo dans le forum Tkinter
    Réponses: 2
    Dernier message: 23/02/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo