真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python怎么從GUI界面加載并顯示圖片

這篇文章主要介紹“Python怎么從GUI界面加載并顯示圖片”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Python怎么從GUI界面加載并顯示圖片”文章能幫助大家解決問題。

創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷推廣,申請(qǐng)域名,雅安服務(wù)器托管,網(wǎng)站托管、服務(wù)器租用有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)公司。

【示例代碼】 

# coding=utf-8# @Auther : "鵬哥賊優(yōu)秀"# @Date : 2019/8/18# @Software : PyCharm
from PyQt5 import QtCore, QtGui, QtWidgetsimport sysimport requests
class Ui_Dialog(QtWidgets.QWidget):    def __init__(self):        super(Ui_Dialog, self).__init__()
   def setupUi(self, Dialog):        Dialog.setObjectName("Dialog")        Dialog.resize(561, 431)        self.pushButton = QtWidgets.QPushButton(Dialog)        self.pushButton.setGeometry(QtCore.QRect(70, 60, 75, 23))        self.pushButton.setObjectName("pushButton")        self.label = QtWidgets.QLabel(Dialog)        self.label.setGeometry(QtCore.QRect(100, 110, 341, 231))        self.label.setObjectName("label")
       self.retranslateUi(Dialog)        QtCore.QMetaObject.connectSlotsByName(Dialog)
   def retranslateUi(self, Dialog):        _translate = QtCore.QCoreApplication.translate        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))        self.pushButton.setText(_translate("Dialog", "打開圖片"))        self.label.setText(_translate("Dialog", "顯示圖片"))        self.pushButton.clicked.connect(self.show_urlimage)            # 從本地電腦加載圖片    def show_localimage(self):        imgName, imgType = QtWidgets.QFileDialog.getOpenFileName(self, "打開圖片", "", "*.jpg;;*.png;;All Files(*)")        pix = QtGui.QPixmap(imgName)        jpg = pix.scaled(self.label.width(), self.label.height())        self.label.setPixmap(jpg)        # 直接從網(wǎng)站中加載圖片    def show_urlimage(self):        url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1566126255397&di=e6038a03911121946883ce68aad6474e&imgtype=0&src=http%3A%2F%2Fnews.mydrivers.com%2FImg%2F20120227%2F2012022709173765.jpg"        r = requests.get(url)        print(r.content)        with open("1.jpg","wb")as f:            f.write(r.content)        pix = QtGui.QPixmap()        pix.loadFromData(r.content)        jpg = pix.scaled(self.label.width(), self.label.height())        self.label.setPixmap(jpg)
if __name__ == "__main__":    app = QtWidgets.QApplication(sys.argv)    main = QtWidgets.QDialog()    mainwindow = Ui_Dialog()    mainwindow.setupUi(main)    main.show()    sys.exit(app.exec())

【效果】

1、本地加載:

Python怎么從GUI界面加載并顯示圖片

2、網(wǎng)站加載圖片

Python怎么從GUI界面加載并顯示圖片

【知識(shí)點(diǎn)】

1、pyqt5中用什么控件顯示圖片?另外,加載顯示圖片的代碼流程又是怎么樣的?

答:示例代碼采用的是label控件,在其他博客中 看到Graphics組件好像也可以。另外,圖片加載的代碼流程如下圖(以本地圖片為例):

Python怎么從GUI界面加載并顯示圖片

其中,pix.scaled()是為了將圖片大小進(jìn)行縮放,用于適應(yīng)Label組件的大小設(shè)置。

本地圖片和網(wǎng)絡(luò)圖片加載方式的不同:

1、獲取方式:網(wǎng)絡(luò)圖片通過request.get方式來訪問圖片,本地圖片是調(diào)用QFileDailog類來 加載圖片;

2、QPixmap加載數(shù)據(jù):因?yàn)?strong>QPixmap()一般是直接加載圖片名稱的,要如何加載網(wǎng)絡(luò)圖片這塊,花了我挺多時(shí)間的,一直不知道要怎么解決QtGui.QPixmap(r.content)的報(bào)錯(cuò)(content為byte型),后來才看到規(guī)避方法是:

pix.loadFromData(r.content)

2、遇到的坑:

(1)用Qt Designer制作的gui界面并轉(zhuǎn)化成py腳本的話,默認(rèn)Ui_Dialog類是object,不會(huì)明顯注明繼承的父類,從而導(dǎo)致后面程序報(bào)錯(cuò)。因此需要聲明下父類,這里QWidget(基類)或者QtWidgets.QDialog(對(duì)話類)都可以;

(2)剛 開始加載網(wǎng)絡(luò)圖片時(shí),是這 樣寫的:

pix = QtGui.QPixmap().loadFromData(r.content),但是發(fā)現(xiàn)pix返回的是True,而不是具體加載圖片后的類。因此,二進(jìn)制圖片數(shù)據(jù)的加載需要單獨(dú)寫一行。

(3)因?yàn)槲沂峭ㄟ^百度風(fēng)景的方式,獲取圖片的。因此圖片的URL地址必須是能直接打開圖片,而不是有其他亂七八糟的網(wǎng)頁元素。解決方法只要右鍵圖片復(fù)制圖片地址就行。

3、引申知識(shí)(還沒怎么深入了解):

(1)如何寫圖片數(shù)據(jù)并保存:

with open("1.jpg","wb")as f:
   f.write(r.content)

注意,這是如果是"w"是會(huì)報(bào)錯(cuò)的。

(2)用PIL庫顯示圖片:

from PIL import Image
f = Image.open('1.jpg')
f.show()
f.save("new.jpg")

(3)用numpy庫圖片轉(zhuǎn)換成數(shù)組:

import numpy as np
res = np.array(Image.open("1.jpg"))

關(guān)于“Python怎么從GUI界面加載并顯示圖片”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。


本文名稱:Python怎么從GUI界面加載并顯示圖片
當(dāng)前URL:http://weahome.cn/article/jjgijs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部