Home  >  Article  >  Backend Development  >  Use Python to create a visual GUI interface and replace the background color of your ID photo with one click

Use Python to create a visual GUI interface and replace the background color of your ID photo with one click

王林
王林forward
2023-05-19 16:19:071372browse

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

The general appearance of the interface is actually not much different from the previous one. Everyone should have read the previous article.

The general appearance of the interface

The overall GUI interface is as shown below:

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

Users can choose to add their ID photos when using Replace it with "white background" or "red background", then after the front-end interface completes uploading the photo, the back-end program will start to perform the required operations.

Remove the background color

First we need to remove the background color of the photo. The third-party interface removebg is used here. The official link is:

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

After we complete the account registration, visit the following link to obtain the api_key: https://www.remove.bg/api#remove-background

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

The following is the corresponding program code, as follows:

def remove_bg(self):
 api_keys = "自己注册的api_key"
 rmbg = RemoveBg(api_keys, "error.log")
 rmbg.remove_background_from_img_file(imgNamepath)

Add the color we want

After completing the removal of the background color of the ID photo, we then add The background color we want can be used. For example, if we want to add a "red" background color, the code is as follows:

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)

This time the control we use to display pictures in the GUI interface is the graphicsView component. After we click the "Select Image" button and upload the image, we need to display the image in the graphicsView window. The code is as follows:

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)

Finally let's take a look at the overall effect

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

The above is the detailed content of Use Python to create a visual GUI interface and replace the background color of your ID photo with one click. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:51cto.com. If there is any infringement, please contact admin@php.cn delete