我必须将传入文件的大小减少到最大 1MB。我用于PIL图像操作和 python 3.5。图像的文件大小由下式给出:
import os
src = 'testfile.jpg'
os.path.getsize(src)
print(src)
Run Code Online (Sandbox Code Playgroud)
在我的例子中给出了 1531494 如果我用 PIL 打开文件,我只能得到尺寸:
from PIL import Image
src = 'testfile.jpg'
image = Image.open(src)
size = image.size
print(size)
Run Code Online (Sandbox Code Playgroud)
在我的例子中给出了 (1654, 3968)
当然,我可以按如下所示对不同大小的文件进行循环,保存文件并检查其文件大小。但必须有一个更简单的方法,因为这需要太多时间。(如果缩小1000个不同大小的文件)
def resize_image(src, reduceby=1):
'''
resizes image by percent given in reduceby
'''
print(" process_image:",src, reduceby)
org = Image.open(src)
real_size = org.size
reduced_size = (int(real_size[0] * reduceby / 100),int(real_size[1] * reduceby / 100) )
org.resize(reduced_size, Image.ANTIALIAS)
reduced_file = src[:-4] +"_" + str(reduceby) + src[-4:]
org.save(reduced_file, …Run Code Online (Sandbox Code Playgroud) 在浏览了一些带有 C++ 答案的帖子后,这些答案不适合我的问题,并且比解释更令人困惑,我尝试在这里提问。我正在尝试子类化,QSqlTableModel因为我需要一些带有复选框的布尔列。完整的工作程序是:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtSql import *
import sys
class ImportFilter (QDialog):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
print("Welcome to StandardDialog")
# Load the Window
#self.ui = uic.loadUi("ImportFilter.ui",self)
#self.ui.setModal(True)
self.buttonBox = QDialogButtonBox()
self.tableView_typeOfValues = QTableView()
layout = QVBoxLayout()
layout.addWidget(self.buttonBox)
layout.addWidget(self.tableView_typeOfValues)
self.setLayout(layout)
# Init Environmment
self.db = createConnection()
# create Models
self.setupModel()
#setup Views
self.setupView()
# connect Signals
self.buttonBox.clicked.connect(self.pushButton_Box_clicked)
self.show()
print("<- initUI")
def setupView(self):
print("-> setupView")
self.tableView_typeOfValues.setModel(self.tableView_typeOfValues_Model) …Run Code Online (Sandbox Code Playgroud)