趣百科

PYQT5图片像素编辑器,电商的好用工具

编辑:Simone 2025-04-30 14:18:15 549 阅读

PYQT5图片像素编辑器,电商的好用工具

如今在电商横飞的现代,那么图片分辨率,怎么能用PYQT制作一个好用的工具呢,下面我们还是工具之旅!!

QT设计师界面层如下图

,UI代码如下

Form

0

0

397

213

图片像素转换器

80

167

231

40

转换

10

4

380

71

图片信息

10

20

54

12

原图高度

68

15

60

20

140

17

21

16

pix

68

45

60

20

140

47

21

16

pix

10

50

54

12

原图宽度

278

13

60

20

350

45

21

16

pix

350

15

21

16

pix

220

48

54

12

新图宽度

278

43

60

20

220

18

54

12

新图高度

27

83

291

20

320

82

75

23

原图片

50

113

341

20

true

13

117

31

16

新图

50

143

291

22

100

50

Qt::Horizontal

10

144

41

16

压缩率

350

143

41

20

然后手写个ui转py简易cmd

@echo off

@cd /d "%~dp0"

pyuic5 %1 > %~n1.py

另存为bat

使用方法,直接将*.UI 拖放至CMD ,就产生了 .py ,即是python3.5的文件

转换过来的py代码如下

我们得改写代码,才能运行

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):

def setupUi(self, Form):

Form.setObjectName("Form")

Form.resize(397, 213)

self.pushButton_2 = QtWidgets.QPushButton(Form)

self.pushButton_2.setGeometry(QtCore.QRect(80, 167, 231, 40))

self.pushButton_2.setObjectName("pushButton_2")

self.groupBox = QtWidgets.QGroupBox(Form)

self.groupBox.setGeometry(QtCore.QRect(10, 4, 380, 71))

self.groupBox.setObjectName("groupBox")

self.label = QtWidgets.QLabel(self.groupBox)

self.label.setGeometry(QtCore.QRect(10, 20, 54, 12))

self.label.setObjectName("label")

# 此代码为32240972 作者 束继涛 创作于2017年

self.lineEdit = QtWidgets.QLineEdit(self.groupBox)

self.lineEdit.setGeometry(QtCore.QRect(68, 15, 60, 20))

self.lineEdit.setObjectName("lineEdit")

self.label_2 = QtWidgets.QLabel(self.groupBox)

self.label_2.setGeometry(QtCore.QRect(140, 17, 21, 16))

self.label_2.setObjectName("label_2")

self.lineEdit_2 = QtWidgets.QLineEdit(self.groupBox)

self.lineEdit_2.setGeometry(QtCore.QRect(68, 45, 60, 20))

self.lineEdit_2.setObjectName("lineEdit_2")

self.label_3 = QtWidgets.QLabel(self.groupBox)

self.label_3.setGeometry(QtCore.QRect(140, 47, 21, 16))

self.label_3.setObjectName("label_3")

self.label_4 = QtWidgets.QLabel(self.groupBox)

self.label_4.setGeometry(QtCore.QRect(10, 50, 54, 12))

self.label_4.setObjectName("label_4")

self.lineEdit_3 = QtWidgets.QLineEdit(self.groupBox)

self.lineEdit_3.setGeometry(QtCore.QRect(278, 13, 60, 20))

self.lineEdit_3.setObjectName("lineEdit_3")

self.label_5 = QtWidgets.QLabel(self.groupBox)

self.label_5.setGeometry(QtCore.QRect(350, 45, 21, 16))

self.label_5.setObjectName("label_5")

self.label_6 = QtWidgets.QLabel(self.groupBox)

self.label_6.setGeometry(QtCore.QRect(350, 15, 21, 16))

self.label_6.setObjectName("label_6")

self.label_7 = QtWidgets.QLabel(self.groupBox)

self.label_7.setGeometry(QtCore.QRect(220, 48, 54, 12))

self.label_7.setObjectName("label_7")

self.lineEdit_4 = QtWidgets.QLineEdit(self.groupBox)

self.lineEdit_4.setGeometry(QtCore.QRect(278, 43, 60, 20))

self.lineEdit_4.setObjectName("lineEdit_4")

self.label_8 = QtWidgets.QLabel(self.groupBox)

self.label_8.setGeometry(QtCore.QRect(220, 18, 54, 12))

self.label_8.setObjectName("label_8")

self.lineEdit_5 = QtWidgets.QLineEdit(Form)

self.lineEdit_5.setGeometry(QtCore.QRect(27, 83, 291, 20))

self.lineEdit_5.setObjectName("lineEdit_5")

self.pushButton = QtWidgets.QPushButton(Form)

self.pushButton.setGeometry(QtCore.QRect(320, 82, 75, 23))

self.pushButton.setObjectName("pushButton")

self.lineEdit_6 = QtWidgets.QLineEdit(Form)

self.lineEdit_6.setGeometry(QtCore.QRect(50, 113, 341, 20))

self.lineEdit_6.setReadOnly(True)

self.lineEdit_6.setObjectName("lineEdit_6")

self.label_9 = QtWidgets.QLabel(Form)

self.label_9.setGeometry(QtCore.QRect(13, 117, 31, 16))

self.label_9.setObjectName("label_9")

self.horizontalSlider = QtWidgets.QSlider(Form)

self.horizontalSlider.setGeometry(QtCore.QRect(50, 143, 291, 22))

self.horizontalSlider.setMaximum(100)

self.horizontalSlider.setProperty("value", 50)

self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)

self.horizontalSlider.setObjectName("horizontalSlider")

self.label_10 = QtWidgets.QLabel(Form)

self.label_10.setGeometry(QtCore.QRect(10, 144, 41, 16))

self.label_10.setObjectName("label_10")

self.lineEdit_7 = QtWidgets.QLineEdit(Form)

self.lineEdit_7.setGeometry(QtCore.QRect(350, 143, 41, 20))

self.lineEdit_7.setObjectName("lineEdit_7")

self.retranslateUi(Form)

QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):

_translate = QtCore.QCoreApplication.translate

Form.setWindowTitle(_translate("Form", "图片像素转换器"))

self.pushButton_2.setText(_translate("Form", "转换"))

self.groupBox.setTitle(_translate("Form", "图片信息"))

self.label.setText(_translate("Form", "原图高度"))

self.label_2.setText(_translate("Form", "pix"))

self.label_3.setText(_translate("Form", "pix"))

self.label_4.setText(_translate("Form", "原图宽度"))

self.label_5.setText(_translate("Form", "pix"))

self.label_6.setText(_translate("Form", "pix"))

self.label_7.setText(_translate("Form", "新图宽度"))

self.label_8.setText(_translate("Form", "新图高度"))

self.pushButton.setText(_translate("Form", "原图片"))

self.label_9.setText(_translate("Form", "新图"))

self.label_10.setText(_translate("Form", "压缩率"))

class Ui_Form(object):

改为

class Ui_Form(QWidget):

#打开窗体的过程 ,这一段加在.py的代码最后行

class Myapp(QtWidgets.QDialog,Ui_Form):

def __init__(self):

super(Myapp,self).__init__()

Ui_Form.__init__()

self.setupUi(self)

#--------------------------------------

app=QtWidgets.QApplication(sys.argv)

widget=QtWidgets.QMainWindow()

ui=Ui_Form()

ui.setupUi(widget)

widget.show()

sys.exit(app.exec_())

#都怪python语法太严谨了。日了狗

下面一句代码 加在Form.resize(397, 213) 下一行

Form.setWindowIcon(QtGui.QIcon('logo.ico'))

好啦,现在可以运行啦

这个工具有2各按钮过程要写

第一个,载入图片的过程

#定义操2222

def SelectPic(self):

global sDir

pix = QPixmap()

sDir = os.path.abspath(__file__)

fname = QFileDialog.getOpenFileName(self,

"选取文件",

sDir,

"Jpg Files (*.jpg)") #设置文件扩展名过滤,注意用双分

if fname:

self.lineEdit_5.setText(fname)

pix = QPixmap()

pix.load(fname)

file_path = fname

self.lineEdit_2.setText(str(pix.width()))

self.lineEdit.setText(str(pix.height()))

(filepath,tempfilename) = os.path.split(file_path)

(filename,extension) = os.path.splitext(tempfilename)

self.lineEdit_6.setText(filename+"NEW.jpg")

下面是载入图片,和载入图片后的截图,

处理图片分辨率的过程

#定义操2222

def myClick(self):

# print ("ssss")

if self.lineEdit_5.text() == '':

QMessageBox.information(self, "提示信息",

"原图片为空,请先添加图片.")

else :

pix = QPixmap()

fitpixmap = QPixmap()

pix.load(self.lineEdit_5.text())

pix.width = int(self.lineEdit_4.text())

pix.height = int(self.lineEdit_3.text())

fitpixmap = pix.scaled(int(self.lineEdit_4.text()),int(self.lineEdit_3.text()))

fitpixmap.save(self.lineEdit_6.text())

QMessageBox.information(self, "提示信息",

"图片处理完成")

运行debug 后就可以运行软件啦,下图是运行后处理图片的效果

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/article/194938.html

相关推荐