PYQT5图片像素编辑器,电商的好用工具
如今在电商横飞的现代,那么图片分辨率,怎么能用PYQT制作一个好用的工具呢,下面我们还是工具之旅!!
QT设计师界面层如下图
,UI代码如下
然后手写个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