小编Pap*_*eno的帖子

如何计算 PIL 中 Image.resize() 的结果文件大小

我必须将传入文件的大小减少到最大 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)

python-imaging-library python-3.x

3
推荐指数
1
解决办法
1863
查看次数

如何在pyqt5中子类化QSqlTableModel?

在浏览了一些带有 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)

python qt pyqt pyqt5

2
推荐指数
1
解决办法
3333
查看次数

标签 统计

pyqt ×1

pyqt5 ×1

python ×1

python-3.x ×1

python-imaging-library ×1

qt ×1