日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
用 Python 制作可視化 GUI 界面,一鍵實(shí)現(xiàn)證件照背景顏色的替換

關(guān)于界面的大致模樣其實(shí)和先前的相差不大,大家應(yīng)該都看過(guò)上一篇的內(nèi)容。

界面大體的樣子

整體GUI的界面如下圖所示:

用戶在使用的時(shí)候可以選擇將證件照片替換成是“白底背景”或者是“紅底背景”,那么在前端的界面上傳完成照片之后,后端的程序便會(huì)開(kāi)始執(zhí)行該有的操作。

去除掉背景顏色

首先我們需要將照片的背景顏色給去除掉,這里用到的是第三方的接口removebg,官方鏈接是:

我們?cè)谕瓿少~號(hào)的注冊(cè)之后,訪問(wèn)下面的鏈接獲取api_key:https://www.remove.bg/api#remove-background

下面便是相對(duì)應(yīng)的程序代碼了,如下:

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

添加上我們想要的顏色

在完成去除掉證件照片的背景顏色之后,我們?cè)偬砑由衔覀兿胍谋尘邦伾纯?,例如我們想要添加上“紅色”的背景顏色,代碼如下:

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)

這次我們?cè)贕UI界面中用到的顯示圖片的控件是graphicsView組件,我們?cè)邳c(diǎn)擊“選擇圖片”的按鈕之后,在上傳圖片之后,需要在graphicsView窗口當(dāng)中將圖片顯示出來(lái),代碼如下:

def openImage(self):
global imgNamepath # 這里為了方便別的地方引用圖片路徑,將其設(shè)置為全局變量
imgNamepath, imgType = QFileDialog.getOpenFileName(self.ui, "選擇圖片", "D:\\", "*.png;;*.jpg;;All Files(*)")
# 通過(guò)文件路徑獲取圖片文件,并設(shè)置圖片長(zhǎng)寬為label控件的長(zhǎng)、寬
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)

最后我們來(lái)看一下整體的效果


網(wǎng)頁(yè)標(biāo)題:用 Python 制作可視化 GUI 界面,一鍵實(shí)現(xiàn)證件照背景顏色的替換
網(wǎng)站URL:http://www.5511xx.com/article/dhdgpec.html