Manipulation d'une image bitmap
Ana-Phore
-
Phil_1857 Messages postés 1956 Statut Membre -
Phil_1857 Messages postés 1956 Statut Membre -
Bonjour,
J'ai un programme qui permet de noircir complètement une image au format bitmap, et à partir de ce programme je dois en concevoir 2 autres.
Par exemple, le premier doit permettre de remplacer le contenu de l'image par le drapeau russe (3 bandes horizontales, 1 blanche, 1 bleue et 1 rouge).
Ce que j'ai compris du programme c'est que sur toutes les position de l'image, il écrit un 0.
Est-ce bien cela ? Et comment, dans un premier temps, changer la couleur de cette écriture ?
Le programme en question :
S'il manque des précisions, merci de me le faire remarquer.
Merci,
J'ai un programme qui permet de noircir complètement une image au format bitmap, et à partir de ce programme je dois en concevoir 2 autres.
Par exemple, le premier doit permettre de remplacer le contenu de l'image par le drapeau russe (3 bandes horizontales, 1 blanche, 1 bleue et 1 rouge).
Ce que j'ai compris du programme c'est que sur toutes les position de l'image, il écrit un 0.
Est-ce bien cela ? Et comment, dans un premier temps, changer la couleur de cette écriture ?
Le programme en question :
def lit(fichier, position, nb_octets): #lit une suite d'octet et en retourne la liste
fichier.seek(position)
return list(fichier.read(nb_octets))
def lit_entier(fichier, position, nb_octets): # lit un entier sur plusieurs octets
fichier.seek(position)
return int.from_bytes(fichier.read(nb_octets), byteorder="little", signed=True)
def ecrit(fichier, position, octet) : # ecrit un seul octet
fichier.seek(position)
fichier.write(bytes([octet]))
def ecrit_liste(fichier, position, octets) : # ecrit une liste d'octets
fichier.seek(position)
fichier.write(bytes(octets))
def ecrit_entier(fichier, position, entier, nb_octets): # ecrit un entier (sur plusieurs octets)
fichier.seek(position)
fichier.write(entier.to_bytes(nb_octets, byteorder='little', signed=True))
f = open("formes.bmp", 'r+b')
taille_fichier = lit_entier(f, 2, 4)
debut_image = lit_entier(f, 10, 4)
# Noircit toute l'image en remplissant l'image de 0
ecrit_liste(f, debut_image, [0] * (taille_fichier - debut_image))
f.close()
S'il manque des précisions, merci de me le faire remarquer.
Merci,
Configuration: Windows / Chrome 88.0.4324.104
A voir également:
- Manipulation d'une image bitmap
- Légender une image - Guide
- Image iso - Guide
- Reduire taille image - Guide
- Rechercher une image - Guide
- Transformer une image en icone - Guide
2 réponses
Bonjour Ana-phore,
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test():
print('test')
test()
Comme cela ?
def lit(fichier, position, nb_octets): #lit une suite d'octet et en retourne la liste fichier.seek(position) return list(fichier.read(nb_octets)) def lit_entier(fichier, position, nb_octets): # lit un entier sur plusieurs octets fichier.seek(position) return int.from_bytes(fichier.read(nb_octets), byteorder="little", signed=True) def ecrit(fichier, position, octet) : # ecrit un seul octet fichier.seek(position) fichier.write(bytes([octet])) def ecrit_liste(fichier, position, octets) : # ecrit une liste d'octets fichier.seek(position) fichier.write(bytes(octets)) def ecrit_entier(fichier, position, entier, nb_octets): # ecrit un entier (sur plusieurs octets) fichier.seek(position) fichier.write(entier.to_bytes(nb_octets, byteorder='little', signed=True)) f = open("formes.bmp", 'r+b') taille_fichier = lit_entier(f, 2, 4) debut_image = lit_entier(f, 10, 4) # Noircit toute l'image en remplissant l'image de 0 ecrit_liste(f, debut_image, [0] * (taille_fichier - debut_image)) f.close()