The general appearance of the interface is actually not much different from the previous one. Everyone should have read the previous article.
The overall GUI interface is as shown below:
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.
First we need to remove the background color of the photo. The third-party interface removebg is used here. The official link is:
After we complete the account registration, visit the following link to obtain the api_key: https://www.remove.bg/api#remove-background
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)
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
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!