ホームページ >バックエンド開発 >Python チュートリアル >Python を使用してビジュアル GUI インターフェイスを作成し、ワンクリックで証明写真の背景色を置き換えます

Python を使用してビジュアル GUI インターフェイスを作成し、ワンクリックで証明写真の背景色を置き換えます

王林
王林転載
2023-05-19 16:19:071463ブラウズ

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

インターフェースの全体的な外観は、実際には以前のものとあまり変わりません。誰もが以前の記事を読んでいるはずです。

インターフェースの一般的な外観

全体的な GUI インターフェースは次のとおりです:

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

ユーザーは ID 写真を追加することを選択できます。 「白い背景」または「赤い背景」に置き換えるを使用する場合、フロントエンド インターフェイスが写真のアップロードを完了した後、バックエンド プログラムが必要な操作の実行を開始します。

背景色を削除します

まず、写真の背景色を削除する必要があります。ここではサードパーティ インターフェイスのremovebgが使用されます。公式リンクは次のとおりです:

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

#アカウント登録が完了したら、次のリンクにアクセスして api_key を取得します: https://www.remove.bg/api#remove-background

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换#以下は、対応するプログラム コードです。

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

必要な色を追加します

証明写真の背景色の削除が完了したら、次のコードを追加します。必要な背景色を使用できます。たとえば、「赤」の背景色を追加します。コードは次のとおりです。

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)

今回は、GUI インターフェイスで画像を表示するために使用するコントロールです。 graphicsView コンポーネント。「画像の選択」ボタンをクリックして画像をアップロードした後、graphicsView ウィンドウに画像を表示する必要があります。コードは次のとおりです:

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)

最後に全体的な効果を見てみましょう

以上がPython を使用してビジュアル GUI インターフェイスを作成し、ワンクリックで証明写真の背景色を置き換えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。