Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création du drapeau français

En python

Anonyme
10 décembre 2015 à 17:32:11

Bonjour/Bonsoir à tous,

Je suis en Terminale S et j'ai un programme à faire pour demain me demandant de faire apparaître l'image du drapeau français sous python. Mais je suis très débutant et du coup j'ai un peu de mal avec les codages d'image.

Voici la consigne : Écrire un programme qui permet d'obtenir le drapeau français en sachant que les couleurs sont Bleu (05, 20 ,64), Blanc (255, 255, 255) et Rouge(236, 25, 32) .

Voici où j'en suis dans mon programme :

im=open("france.jpg",'w')
im.write('P3\n')
im.write("#france\n")
im.write('100\n')
im.write('33\n')
im.write('255\n')
im.write('255\n')
im.write('255\n')

for i in range (149)
    for j in range (33) :
        im.write("05, 20 ,64 ")
    for k in range (33) :
        im.write("255, 255, 255")
    for l in range (33) :
        im.write("236, 25, 32\n")
for m in range
    x=x+1
im.close()

A chaque fois que j'essaie d'ouvrir l'image, la visionneuse de photo Windows, ça me dit l'image est trop grande ou corrompue. Pouvais vous me dire ou je me suis trompé ?

Merci !

PS : Je n'ai pas réussi à utiliser les balises python.

  • Partager sur Facebook
  • Partager sur Twitter
10 décembre 2015 à 19:22:26

pour les balises tu as en haut a gauche un icone </> cliques dessus et insere ton code python :

im=open("france.jpg",'w')
im.write('P3\n')
im.write("#france\n")
im.write('100\n')
im.write('33\n')
im.write('255\n')
im.write('255\n')
im.write('255\n')

for i in range (149)
    for j in range (33) :
        im.write("05, 20 ,64 ")
    for k in range (33) :
        im.write("255, 255, 255")
    for l in range (33) :
        im.write("236, 25, 32\n")
for m in range
    x=x+1
im.close()



  • Partager sur Facebook
  • Partager sur Twitter
http://sinclair.recreatedzxspectrum.com/index.php
10 décembre 2015 à 19:24:47

ensuite dans ton fichier image t'es sur que c'est un fichier qui ressemble a une image ?

essayes de l'ouvrir avec un editeur de texte....

  • Partager sur Facebook
  • Partager sur Twitter
http://sinclair.recreatedzxspectrum.com/index.php
10 décembre 2015 à 19:27:33

il te manques : a la ligne 10

ligne 17 ta boucle ?

  • Partager sur Facebook
  • Partager sur Twitter
http://sinclair.recreatedzxspectrum.com/index.php
10 décembre 2015 à 19:31:45

  • Partager sur Facebook
  • Partager sur Twitter
http://sinclair.recreatedzxspectrum.com/index.php
11 décembre 2015 à 10:00:50

En console, tout simplement.

# -*- encoding: utf-8 -*-

from sys import argv

size = int(argv[1])

BLUE = '\033[34m'
WHITE = '\033[37m'
RED = '\033[31m'
RESET = '\033[0m'

for _ in range(size):
    print(BLUE  + '█'*size +
          WHITE + '█'*size +
          RED   + '█'*size)
print(RESET)

-
Edité par talpa 11 décembre 2015 à 10:10:13

  • Partager sur Facebook
  • Partager sur Twitter
per aspera ad astra – comp.lang.c FAQexplication pointeur
11 décembre 2015 à 10:07:15

Bonjour à toi,

J'ai trouvé sur le net ce petit exemple. 

import Image
import random

size = (256,256)
im = Image.new('RGB',size)
pix = im.load()
for i in range(size[0]):
    for j in range(size[1]):
        pix[i,j] = (i,int(0.5*i+random.randint(0,127)),int(0.5*j+random.randint(0,127))) 
im.save('ima5.png')

http://calque.pagesperso-orange.fr/langages/python/script/save.py

aide toi de ça pour faire ton image. Normalement tu as 80% du problème expliqué . 

  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2015 à 10:50:19

Pourquoi ne pas créer une image Bleu, une image Rouge et une image Blanc , et de les coller toutes simplement pour créer une image final qui forme le drapeau ? un petit comme le code que j'ai fait en dessous ( Attention j'ai pas tester y'a surement des erreurs mais tu vois l'idée ;) )

from pil import Image

size = (256,256)
im = Image.new('RGB',size,"blue")
im2 = Image.new('RGB',size,"white")
im3 = Image.new('RGB',size,"red")

new_im = Image.new('RGB', (3*size))

new_im.paste(im, (0,0))
new_im.paste(im2, (256,0))
new_im.paste(im3, (2*256,0))


new_im.save("test", "PNG")
new_im.show()



-
Edité par Myrens 11 décembre 2015 à 10:52:31

  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2015 à 12:03:09

Myrens a écrit:

Pourquoi ne pas créer une image Bleu, une image Rouge et une image Blanc , et de les coller toutes simplement pour créer une image final qui forme le drapeau ? un petit comme le code que j'ai fait en dessous ( Attention j'ai pas tester y'a surement des erreurs mais tu vois l'idée ;) )

from pil import Image

size = (256,256)
im = Image.new('RGB',size,"blue")
im2 = Image.new('RGB',size,"white")
im3 = Image.new('RGB',size,"red")

new_im = Image.new('RGB', (3*size))

new_im.paste(im, (0,0))
new_im.paste(im2, (256,0))
new_im.paste(im3, (2*256,0))


new_im.save("test", "PNG")
new_im.show()



-
Edité par Myrens il y a environ 1 heure

Petite correction de ton code 

	size = (256,256)
	im = Image.new('RGB',size,"blue")
	im2 = Image.new('RGB',size,"white")
	im3 = Image.new('RGB',size,"red")

	new_im = Image.new('RGB', (3*size[0],size[1]))
	new_im.paste(im, (0,0))
	new_im.paste(im2, (256,0))
	new_im.paste(im3, (2*256,0))
	new_im.save("test", "PNG")
	new_im.show()


J'ai testé les vitesses d'execution des deux, celle de Myrens est beaucoup plus rapide :lol:.

  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2015 à 13:13:54

Bah j'avais regardé vites fais la doc, puis je me suis dis pourquoi s'embêter avec des boucles alors quand peut vraiment aller au plus simple, mais après effectivement ici dans le cadre de son exos surement que le prof n'attend pas une résolution de l'exercice aussi "simpliste", mais c'est toujours plaisant de voir plusieurs manières de résoudre un même problème :)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
11 décembre 2015 à 15:29:48

Visiblement, l'exercice porte sur la manipulation d'images au format PPM, donc je pense qu'il faut oublier le module Pillow et se concentrer sur la structure définie du format PPM : http://netpbm.sourceforge.net/doc/ppm.html

Donc il ne faut pas mettre de virgule dans le fichier et le nom du fichier devrait finir par .ppm, et pas .jpg. C'est tout.

-
Edité par Anonyme 11 décembre 2015 à 15:30:27

  • Partager sur Facebook
  • Partager sur Twitter