Optimisation de programme
Résolu
Trompettesib
Messages postés
5
Statut
Membre
-
Trompettesib Messages postés 5 Statut Membre -
Trompettesib Messages postés 5 Statut Membre -
Bonjour !
Je me demande si vous auriez la réponse ...
J'ai fait ce programme pour faire un cadre autour d'une photo mais pour plus de 10 pixels ça prend un temps de dingue ...
Auriez-vous une idée pour optimiser la chose ?
Je me demande si vous auriez la réponse ...
J'ai fait ce programme pour faire un cadre autour d'une photo mais pour plus de 10 pixels ça prend un temps de dingue ...
Auriez-vous une idée pour optimiser la chose ?
from PIL import Image
def modif(fich,rnouveau,vnouveau,bnouveau,nombredepixel,larg,haut) :
for x in range(fich.size[0]) :
for y in range (fich.size[1]) :
(r,v,b) = fich.getpixel((x,y))
img_out.putpixel((x+nombredepixel,y+nombredepixel),(r,v,b))
for i in range (0,nombredepixel) :
img_out.putpixel((i,y+nombredepixel),(rnouveau,vnouveau,bnouveau))
img_out.putpixel((x+nombredepixel,i),(rnouveau,vnouveau,bnouveau))
for i in range (0,nombredepixel) :
img_out.putpixel((larg+i+nombredepixel,y+nombredepixel),(rnouveau,vnouveau,bnouveau))
img_out.putpixel((x+nombredepixel,haut+i+nombredepixel),(rnouveau,vnouveau,bnouveau))
for i in range (0,nombredepixel) :
for j in range (0,nombredepixel) :
img_out.putpixel((i,j),(rnouveau,vnouveau,bnouveau))
for i in range (0,nombredepixel) :
for j in range (0,nombredepixel) :
img_out.putpixel((i+larg+nombredepixel,j+haut+nombredepixel),(rnouveau,vnouveau,bnouveau))
for i in range (0,nombredepixel) :
for j in range (0,nombredepixel) :
img_out.putpixel((i+larg+nombredepixel,j),(rnouveau,vnouveau,bnouveau))
for i in range (0,nombredepixel) :
for j in range (0,nombredepixel) :
img_out.putpixel((i,j+haut+nombredepixel),(rnouveau,vnouveau,bnouveau))
print ("veuillez saisir exactement le nom ainsi que l'extention de l'image")
'''imagesélectionné = input("nom de l'image")'''
print ("Sélectionner la couleur du cadre ainsi que son nombre de pixel")
'''rnouveau = int(input("r"))
vnouveau = int(input("v"))
bnouveau = int(input("b"))'''
rnouveau = 50
vnouveau = 255
bnouveau = 255
imagesélectionné = "images.jpg"
nombredepixel = int(input("nombre de pixel"))
img = Image.open(imagesélectionné)
'''img.show()'''
larg,haut = img.size
img_out = Image.new("RGB",(larg+(nombredepixel*2),haut+(nombredepixel*2)))
modif(img,rnouveau,vnouveau,bnouveau,nombredepixel,larg,haut)
img_out.show()
A voir également:
- Optimisation de programme
- Optimisation pc - Accueil - Utilitaires
- Programme demarrage windows - Guide
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Programme word gratuit - Guide
- Message programmé iphone - Guide
3 réponses
Bonsoir
il y a un truc primordial avec Python, c'est l'indentation, or par défaut le site supprime les tabulations et les espaces en double.
Du coup, ton code est inexploitable.
Merci donc de lire ceci https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code et de reposter ton code correctement.
il y a un truc primordial avec Python, c'est l'indentation, or par défaut le site supprime les tabulations et les espaces en double.
Du coup, ton code est inexploitable.
Merci donc de lire ceci https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code et de reposter ton code correctement.
mamiemando
Messages postés
34193
Date d'inscription
Statut
Modérateur
Dernière intervention
7 891
J'ai rajouté les balises en question dans son message.
Utilisateur anonyme
Bonjour, merci
Bonsoir.
Ton script est beaucoup trop complexe pour faire ce genre de chose, je ne connais pas trop PIL, mais ce que tu désires faire s'obtient en quelques lignes de codes.
Là, le cadre est simplement la couleur de remplissage de la nouvelle image, si tu souhaites obtenir quelque chose de plus élaboré, il faudra te tourner vers le sous module ImageDraw de PIL pour dessiner des lignes, rectangles, cercles, etc, pour agrémenter ton cadre.
Ton script est beaucoup trop complexe pour faire ce genre de chose, je ne connais pas trop PIL, mais ce que tu désires faire s'obtient en quelques lignes de codes.
def encadrer(img, bord, couleur):
larg, haut = img.size
larg += bord * 2
haut += bord * 2
cadre = Image.new('RGB', (larg, haut), couleur)
cadre.paste(img, box=(bord, bord))
return cadre
img = Image.open("images.jpg")
cadre = encadrer(img, 15, (50, 255, 255))
cadre.show()
Là, le cadre est simplement la couleur de remplissage de la nouvelle image, si tu souhaites obtenir quelque chose de plus élaboré, il faudra te tourner vers le sous module ImageDraw de PIL pour dessiner des lignes, rectangles, cercles, etc, pour agrémenter ton cadre.