1 pièce(s) jointe(s)
	
	
		afficher un pgm dans un canvas après conversion des pixel en base 16
	
	
		Pièce jointe 138355
Bonjour, voila mon problème je dois réaliser un exercice en gros je dois créer une fenêtre contenant un canevas  dans laquelle je doit taper le nom d'un fichier fichier PGM  a ouvrir et en cliquant sur ouvrir , le programme en python doit récupérer les valeur du fichier PGM les convertir en base 16 car elle sont en base 10 et ensuite recréer l'image pixel par pixel dans le canevas 
j'ai déjà créer l'interface graphique et la fonction conversion base 16 qui me convertit bien un nombre en base en base 16
 ma fonction "conversionimage" fonctionne également car elle copie en fait le fichier PGM et l'inscrit dans un tableau
ce que je n'arrive pa a faire c'est a réunir tout ce petit bordel pour la fonction "afficherimage"  qui doit recréer l'image dans le canevas pixel par pixel
	 
	
	
	
		Merci de ta reponse mais ...
	
	
		en fait d'après ce que j'ai compris le canevas ne lira pas les donné du fichier PGM car c'est un canvevas et pas photoshop ou gimp il faut donc convertir les pixel du fichier PGM ( 200 , 255 , 107 , 108 , 130) en base 16 afin d'obtenir par exemple 6B qui est la base 16 de 107 ou ff la base 16 de 255 et ces valeur peuvent ètre interpreté  par le canevas dans ce cas
	 
	
	
	
		voila mon code a modifier
	
	
		
	Code:
	
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
   | # -*- coding: cp1252 -*-
from Tkinter import*
from random import*
from time import*
 
 
def conversionimage(fich1):
    for i in range(0,4):
        fich1.readline()
 
 
    text=fich1.readline()
    while text !="":
        t=[]
        for i in range (0,410):
            text=fich1.readline()
            t.append(text)
 
    afficheimage()
 
 
 
def afficheimage():
 
        zone_dessin.create_rectangle(1,1,10,10)
 
 
 
 
 
 
def conversionbase16():
    t2=[]
    nb=NomFichSource.get()
    nume=1
    nb=int(nb)
    nume=nb//16
    rest=nb%16
    if rest==10:
        rest='A'
    if rest==11:
        rest='B'
    if rest==12:
        rest='C'
    if rest==13:
        rest='D'
    if rest==14:
        rest='E'
    if rest==15:
        rest='F'
    if rest==16:
        rest='G'
    t2.append(rest)
    while nume!=0:
        rest=nume%16
        nume=nume//16
        if rest==10:
            rest='A'
        if rest==11:
            rest='B'
        if rest==12:
            rest='C'
        if rest==13:
            rest='D'
        if rest==14:
            rest='E'
        if rest==15:
            rest="F"
        if rest==16:
            rest='G'
        t2.append(rest)
    t2.reverse()
    print t2
 
 
 
 
def ouvrir():
 
    N=NomFichSource.get()
    fich1=open(N,"r")
    obj5.config(text='fichier ouvert')
    conversionimage(fich1)
    fich1.close()
 
 
 
fen=Tk()
fen.title("CREATOR SPN4")
fen.geometry('600x600')
zone_dessin=Canvas(fen,width=410,height=310,bg='white')
zone_dessin.pack()
 
obj1=Label(fen,text='NomFichSource')
obj1.pack()
NomFichSource=Entry(fen,width=30)
NomFichSource.pack()
obj3=Button(fen,text='Valider',command=ouvrir)
obj3.pack()
obj4=Label(fen,text='Info:')
obj4.pack()
obj5=Label(fen,text='aucune information')
obj5.pack()
 
 
fen.mainloop() |