Maison  >  Article  >  développement back-end  >  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

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

王林
王林avant
2023-05-19 16:19:071372parcourir

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

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'apparence générale de l'interface

L'interface graphique globale est la suivante :

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

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.

Supprimer la couleur d'arrière-plan

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 :

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

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

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

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)

Ajoutez la couleur que nous voulons

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

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer