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
34180
Statut
Modérateur
7 887
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.