Maison >développement back-end >Tutoriel Python >Utilisez Python pour créer une interface graphique visuelle et remplacer la couleur d'arrière-plan de votre photo d'identité en un seul clic
L'apparence générale de l'interface n'est en réalité pas très différente de la précédente. Tout le monde aurait dû lire l'article précédent.
L'interface graphique globale est la suivante :
Lors de son utilisation, l'utilisateur peut choisir de remplacer la photo d'identité par "fond blanc" ou "fond rouge", puis dans Une fois que l'interface frontale a terminé le téléchargement des photos, le programme principal commencera à effectuer les opérations requises.
Nous devons d'abord supprimer la couleur d'arrière-plan de la photo. L'interface tierce Removebg est utilisée ici. Le lien officiel est :
Après avoir terminé l'enregistrement du compte, visitez ce qui suit. Obtenez l'api_key à partir du lien : https://www.remove.bg/api#remove-background
Voici le code du programme correspondant, comme suit :
def remove_bg(self): api_keys = "自己注册的api_key" rmbg = RemoveBg(api_keys, "error.log") rmbg.remove_background_from_img_file(imgNamepath)
Après la suppression la couleur de fond de la photo d'identité, nous pouvons ajouter la couleur de fond que nous voulons. Par exemple, nous voulons ajouter une couleur de fond "rouge" Le code est le suivant :
no_bg_image = Image.open(in_path) x, y = no_bg_image.size new_image = Image.new('RGBA', no_bg_image.size, color="red") new_image.paste(no_bg_image, (0, 0, x, y), no_bg_image) new_image.save(output_path)
Cette fois nous utilisons dans l'interface GUI Le contrôle. pour afficher les images est le composant GraphicsView. Après avoir cliqué sur le bouton "Sélectionner une image" et téléchargé l'image, nous devons afficher l'image dans la fenêtre GraphicsView. Le code est le suivant :
def openImage(self): global imgNamepath# 这里为了方便别的地方引用图片路径,将其设置为全局变量 imgNamepath, imgType = QFileDialog.getOpenFileName(self.ui, "选择图片", "D:\", "*.png;;*.jpg;;All Files(*)") # 通过文件路径获取图片文件,并设置图片长宽为label控件的长、宽 img = QtGui.QPixmap(imgNamepath).scaled(self.ui.graphicsView.size(), aspectMode=Qt.KeepAspectRatioByExpanding) print("img: ", img.width(), img.height()) self.ui.graphicsView.setFixedSize(img.width(), img.height()) # 在label控件上显示选择的图片 item = QGraphicsPixmapItem(img) scene = QGraphicsScene() scene.addItem(item) self.ui.graphicsView.setScene(scene) self.ui.graphicsView.repaint() # 显示所选图片的路径 self.ui.lineEdit.setText(imgNamepath)
Enfin, jetons un coup d'œil au composant. effet global
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!