PyQt 图片格式转换,图片压缩

界面展示

# -*- coding: utf-8 -*-
import osfrom PIL import Image
from PIL.ImageFile import ImageFilefrom PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QFileDialog, QVBoxLayout, QMessageBoxclass Ui_MainWindow(object):def __init__(self):self.outfile = None  # 压缩后的图片路径self.img_suffix = None  # 选择的图片后缀self.choose_ing_img = Noneself.type = "png"  # 保存的图片后缀def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(800, 600)MainWindow.setStyleSheet("background-color: rgb(229, 246, 255);")self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.choose_img = QtWidgets.QLabel(self.centralwidget)self.choose_img.setGeometry(QtCore.QRect(50, 70, 191, 161))self.choose_img.setStyleSheet("background-color: rgb(184, 184, 184);")self.choose_img.setText("")self.choose_img.setObjectName("choose_img")self.save_img = QtWidgets.QLabel(self.centralwidget)self.save_img.setGeometry(QtCore.QRect(50, 330, 201, 171))self.save_img.setStyleSheet("background-color: rgb(186, 186, 186);")self.save_img.setText("")self.save_img.setObjectName("save_img")self.choose_btn = QtWidgets.QPushButton(self.centralwidget)self.choose_btn.setGeometry(QtCore.QRect(300, 130, 91, 41))self.choose_btn.setStyleSheet("color: rgb(255, 170, 127);\n""background-color: rgb(234, 219, 255);\n""font: 14pt \"华文行楷\";")self.choose_btn.setObjectName("choose_btn")self.save_btn = QtWidgets.QPushButton(self.centralwidget)self.save_btn.setGeometry(QtCore.QRect(300, 380, 91, 41))self.save_btn.setStyleSheet("color: rgb(85, 170, 127);\n""background-color: rgb(221, 255, 210);\n""font: 14pt \"华文行楷\";")self.save_btn.setObjectName("save_btn")self.jpg_png = QtWidgets.QPushButton(self.centralwidget)self.jpg_png.setGeometry(QtCore.QRect(430, 70, 101, 51))self.jpg_png.setStyleSheet("color: rgb(170, 134, 123);\n""background-color: rgb(221, 201, 255);\n""font: 15pt \"华文琥珀\";")self.jpg_png.setObjectName("jpg_png")self.png_jpg = QtWidgets.QPushButton(self.centralwidget)self.png_jpg.setGeometry(QtCore.QRect(550, 300, 101, 51))self.png_jpg.setStyleSheet("font: 15pt \"华文琥珀\";\n""color: rgb(170, 255, 255);\n""background-color: rgb(255, 170, 127);\n""")self.png_jpg.setObjectName("png_jpg")self.jpg_webp = QtWidgets.QPushButton(self.centralwidget)self.jpg_webp.setGeometry(QtCore.QRect(670, 70, 101, 51))self.jpg_webp.setStyleSheet("font: 13pt \"华文琥珀\";\n""background-color: rgb(255, 211, 222);\n""color: rgb(85, 170, 0);")self.jpg_webp.setObjectName("jpg_webp")self.png_ico = QtWidgets.QPushButton(self.centralwidget)self.png_ico.setGeometry(QtCore.QRect(430, 300, 101, 51))self.png_ico.setStyleSheet("font: 15pt \"华文琥珀\";\n""background-color: rgb(175, 206, 255);\n""color: rgb(115, 141, 255);")self.png_ico.setObjectName("png_ico")self.ya_suo_btn = QtWidgets.QPushButton(self.centralwidget)self.ya_suo_btn.setGeometry(QtCore.QRect(430, 420, 101, 51))self.ya_suo_btn.setStyleSheet("font: 15pt \"华文琥珀\";\n""background-color: rgb(255, 230, 207);\n""color: rgb(131, 255, 124);")self.ya_suo_btn.setObjectName("ya_suo_btn")self.webp_png = QtWidgets.QPushButton(self.centralwidget)self.webp_png.setGeometry(QtCore.QRect(670, 190, 101, 51))self.webp_png.setStyleSheet("font: 13pt \"华文琥珀\";\n""background-color: rgb(123, 154, 255);\n""color: rgb(171, 255, 114);")self.webp_png.setObjectName("webp_png")self.png_icns = QtWidgets.QPushButton(self.centralwidget)self.png_icns.setGeometry(QtCore.QRect(670, 300, 101, 51))font = QtGui.QFont()font.setFamily("Berlin Sans FB Demi")font.setPointSize(13)font.setBold(False)font.setItalic(False)font.setWeight(9)self.png_icns.setFont(font)self.png_icns.setStyleSheet("font: 75 13pt \"Berlin Sans FB Demi\";\n""background-color: rgb(255, 248, 165);\n""color: rgb(149, 255, 193);")self.png_icns.setObjectName("png_icns")self.webp_jpg = QtWidgets.QPushButton(self.centralwidget)self.webp_jpg.setGeometry(QtCore.QRect(430, 190, 101, 51))self.webp_jpg.setStyleSheet("font: 13pt \"华文琥珀\";\n""background-color: rgb(94, 121, 111);\n""color: rgb(255, 111, 217);")self.webp_jpg.setObjectName("webp_jpg")self.start_ya_suo = QtWidgets.QSpinBox(self.centralwidget)self.start_ya_suo.setGeometry(QtCore.QRect(560, 400, 61, 31))self.start_ya_suo.setObjectName("start_ya_suo")self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(570, 440, 61, 31))self.label.setStyleSheet("font: 10pt \"华文琥珀\";")self.label.setObjectName("label")self.end_ya_suo = QtWidgets.QSpinBox(self.centralwidget)self.end_ya_suo.setGeometry(QtCore.QRect(560, 470, 61, 31))self.end_ya_suo.setObjectName("end_ya_suo")self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(580, 510, 61, 31))self.label_2.setStyleSheet("font: 10pt \"华文琥珀\";")self.label_2.setObjectName("label_2")self.jpg_jpeg = QtWidgets.QPushButton(self.centralwidget)self.jpg_jpeg.setGeometry(QtCore.QRect(550, 70, 101, 51))self.jpg_jpeg.setStyleSheet("font: 15pt \"华文琥珀\";\n""background-color: rgb(205, 240, 255);\n""color: rgb(76, 145, 255);")self.jpg_jpeg.setObjectName("jpg_jpeg")self.webp_jpeg = QtWidgets.QPushButton(self.centralwidget)self.webp_jpeg.setGeometry(QtCore.QRect(550, 190, 101, 51))self.webp_jpeg.setStyleSheet("font: 13pt \"华文琥珀\";\n""background-color: rgb(255, 184, 184);\n""color: rgb(255, 112, 244);")self.webp_jpeg.setObjectName("webp_jpeg")self.line_3 = QtWidgets.QFrame(self.centralwidget)self.line_3.setGeometry(QtCore.QRect(10, 30, 771, 20))self.line_3.setFrameShape(QtWidgets.QFrame.HLine)self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_3.setObjectName("line_3")self.line_4 = QtWidgets.QFrame(self.centralwidget)self.line_4.setGeometry(QtCore.QRect(10, 530, 781, 20))self.line_4.setFrameShape(QtWidgets.QFrame.HLine)self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_4.setObjectName("line_4")self.line_5 = QtWidgets.QFrame(self.centralwidget)self.line_5.setGeometry(QtCore.QRect(-7, 40, 31, 501))self.line_5.setFrameShape(QtWidgets.QFrame.VLine)self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_5.setObjectName("line_5")self.line_6 = QtWidgets.QFrame(self.centralwidget)self.line_6.setGeometry(QtCore.QRect(770, 40, 20, 511))self.line_6.setFrameShape(QtWidgets.QFrame.VLine)self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_6.setObjectName("line_6")self.line_7 = QtWidgets.QFrame(self.centralwidget)self.line_7.setGeometry(QtCore.QRect(270, 40, 20, 501))self.line_7.setFrameShape(QtWidgets.QFrame.VLine)self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_7.setObjectName("line_7")self.line_8 = QtWidgets.QFrame(self.centralwidget)self.line_8.setGeometry(QtCore.QRect(400, 40, 20, 501))self.line_8.setFrameShape(QtWidgets.QFrame.VLine)self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_8.setObjectName("line_8")self.line_9 = QtWidgets.QFrame(self.centralwidget)self.line_9.setGeometry(QtCore.QRect(530, 40, 20, 351))self.line_9.setFrameShape(QtWidgets.QFrame.VLine)self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_9.setObjectName("line_9")self.line_10 = QtWidgets.QFrame(self.centralwidget)self.line_10.setGeometry(QtCore.QRect(650, 40, 20, 501))self.line_10.setFrameShape(QtWidgets.QFrame.VLine)self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_10.setObjectName("line_10")self.line_11 = QtWidgets.QFrame(self.centralwidget)self.line_11.setGeometry(QtCore.QRect(410, 150, 371, 16))self.line_11.setFrameShape(QtWidgets.QFrame.HLine)self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_11.setObjectName("line_11")self.line_12 = QtWidgets.QFrame(self.centralwidget)self.line_12.setGeometry(QtCore.QRect(580, 150, 371, 16))self.line_12.setFrameShape(QtWidgets.QFrame.HLine)self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_12.setObjectName("line_12")self.line_13 = QtWidgets.QFrame(self.centralwidget)self.line_13.setGeometry(QtCore.QRect(410, 270, 371, 16))self.line_13.setFrameShape(QtWidgets.QFrame.HLine)self.line_13.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_13.setObjectName("line_13")self.line_14 = QtWidgets.QFrame(self.centralwidget)self.line_14.setGeometry(QtCore.QRect(410, 380, 371, 16))self.line_14.setFrameShape(QtWidgets.QFrame.HLine)self.line_14.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_14.setObjectName("line_14")self.line_15 = QtWidgets.QFrame(self.centralwidget)self.line_15.setGeometry(QtCore.QRect(280, 270, 131, 16))self.line_15.setFrameShape(QtWidgets.QFrame.HLine)self.line_15.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_15.setObjectName("line_15")self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(300, 0, 191, 31))font = QtGui.QFont()font.setFamily("华文琥珀")font.setPointSize(15)font.setBold(False)font.setItalic(False)font.setWeight(50)self.label_3.setFont(font)self.label_3.setStyleSheet("color: rgb(102, 255, 107);\n""font: 15pt \"华文琥珀\";")self.label_3.setObjectName("label_3")self.jpeg_png = QtWidgets.QPushButton(self.centralwidget)self.jpeg_png.setGeometry(QtCore.QRect(670, 440, 101, 51))self.jpeg_png.setStyleSheet("font: 13pt \"华文琥珀\";\n""color: rgb(0, 170, 255);\n""background-color: rgb(170, 255, 127);")self.jpeg_png.setObjectName("jpeg_png")self.save_label = QtWidgets.QLabel(self.centralwidget)self.save_label.setGeometry(QtCore.QRect(100, 300, 111, 21))self.save_label.setStyleSheet("color: rgb(170, 85, 255);\n""background-color: rgb(185, 216, 255);\n""font: 16pt \"华文琥珀\";")self.save_label.setObjectName("save_label")self.choose_label = QtWidgets.QLabel(self.centralwidget)self.choose_label.setGeometry(QtCore.QRect(90, 40, 121, 21))self.choose_label.setStyleSheet("color: rgb(170, 85, 255);\n""background-color: rgb(185, 216, 255);\n""font: 16pt \"华文琥珀\";")self.choose_label.setObjectName("choose_label")self.label_4 = QtWidgets.QLabel(self.centralwidget)self.label_4.setGeometry(QtCore.QRect(340, 530, 311, 31))self.label_4.setStyleSheet("font: 13pt \"Agency FB\";\n""color: rgb(255, 20, 12);")self.label_4.setObjectName("label_4")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)layout = QVBoxLayout()self.start_ya_suo.setValue(2)  # 设置压缩最小的初始步长self.end_ya_suo.setValue(100)  # 设置压缩最大的初始步长self.start_ya_suo.setMinimum(1)  # 设置最小值为1kbself.end_ya_suo.setMaximum(1024 * 10)  # 设置最大值为10Mself.choose_btn.clicked.connect(self.open_image)  # 选择图片self.save_btn.clicked.connect(self.saveImage)  # 保存图片self.ya_suo_btn.clicked.connect(self.get_ya_suo) # 压缩图片****************** 全部代码关注后私信获取*********def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.choose_btn.setText(_translate("MainWindow", "选择图片"))self.save_btn.setText(_translate("MainWindow", "保存图片"))self.jpg_png.setText(_translate("MainWindow", "JPG→PNG"))self.png_jpg.setText(_translate("MainWindow", "Png→Jpg"))self.jpg_webp.setText(_translate("MainWindow", "Jpg→WEBP"))self.png_ico.setText(_translate("MainWindow", "Png→ico"))self.ya_suo_btn.setText(_translate("MainWindow", "压缩图片"))self.webp_png.setText(_translate("MainWindow", "WEBP→Png"))self.png_icns.setText(_translate("MainWindow", "Png→icns"))self.webp_jpg.setText(_translate("MainWindow", "WEBP→Jpg"))self.label.setText(_translate("MainWindow", "KB 至"))self.label_2.setText(_translate("MainWindow", "KB"))self.jpg_jpeg.setText(_translate("MainWindow", "Jpg→Jpeg"))self.webp_jpeg.setText(_translate("MainWindow", "WEBP→Jpeg"))self.label_3.setText(_translate("MainWindow", "阿边的图片转换工具"))self.jpeg_png.setText(_translate("MainWindow", "Jpeg→Png"))self.save_label.setText(_translate("MainWindow", "无格式"))self.choose_label.setText(_translate("MainWindow", "无格式"))self.label_4.setText(_translate("MainWindow", "⚠️:压缩图片时,请自行保存副本,压缩会改变源文件"))if __name__ == "__main__":import sysapp = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

全部代码关注后私信获取

Python图片格式转换,图片压缩相关推荐

  1. C# 图片格式转换的实例代码

    C# 图片格式转换的实例代码 这篇文章主要介绍了C# 图片格式转换的实例代码,文中讲解非常详细,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下 在日常工作中,经常需要不同格式的图片,有时还需要进 ...

  2. python cv2读取图片/图片转码/切图/图片格式转换/替换图片内容

    import base64 import cv2 import numpy as np from io import BytesIOclass ImageOperation(object):def _ ...

  3. python gif_python 将png图片格式转换生成gif动画

    先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? 这个哥们通过爬气象网站的气象雷达图,生成一个gif的动态图.非常有趣且很实用,那咱也实现下. 我们先实现一个从GIF提取帧的代码 ...

  4. python图片保存jpg、show变成bmp_Python 图片格式转换

    图片格式转换可以利用各种软件 今天介绍一下如何使用 Python 实现各种图片格式的转换 1. SVG 转其他格式 读取 SVG 格式文件,需要安装 svglib 库 pip install svgl ...

  5. 利用Python实现自动批量图片格式转换

    文章目录 利用Python实现自动批量图片格式转换 0.背景 1.简单思路 2.进一步改进 3.最终版本 4.总结 利用Python实现自动批量图片格式转换 0.背景 在一个漫画网站下载了一些图片,但 ...

  6. 基于Python实现图片格式转换的小程序

    基于Python实现图片格式转换的小程序 特点: 批量处理图片 转换常见的4种图片格式 运行窗口 运行窗口-1 选择图片(可批量选择)-2 假设选中4张JEPG格式的图片 格式选择窗口-3 假设选择目 ...

  7. Python脚本—批量图片格式转换

    使用Python的os.sys.PIL库完成批量图片格式转换 import os import sys from PIL import Imageinput_folder = r'D:\Toolkit ...

  8. 【图片格式转换】python实现批量图片格式转换:emf、jpeg等转为png

    [图片格式转换]python批量进行图片格式转换emf.jpeg等转为png 文章目录 [图片格式转换]python批量进行图片格式转换emf.jpeg等转为png 1. 代码 2. 效果 3. 总结 ...

  9. Python 实现图片格式转换,jpg\png\webp等,附源码

    Python 实现图片格式转换,jpg\png\webp等,附源码 需要使用 PIL库,但python 3是无法安装该库的,如果是python 3安装pillow库即可. 1.安装 python 2 ...

最新文章

  1. Linux010 Miniconda安装及使用
  2. 怎样更新jar包中的某个class文件??
  3. Struts2+JSON特别让人恶心的一个问题
  4. 大数据实训报告_2019公路货运大数据报告发布:运输结构持续优化 大数据优势愈发明显...
  5. t-sql导出EXCEL语句
  6. “约见”面试官系列之常见面试题第二十四篇之vue-router使用(建议收藏)
  7. 异常:java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext
  8. 项目组【网站】的项目
  9. jquery动态添加Div
  10. cr3格式是什么意思_佳能rp的cr3如何打开?修图为什么要用raw格式?转码又是什么?...
  11. java rsa模块_【HAVENT原创】NodeJS 两个模块进行 RSA 加密解密(匹配Java RSA)
  12. 在excel中计算机和函数是,理解Excel函数
  13. mysql c盘满了 怎么办_C盘太满清理技巧
  14. 远程关闭计算机提示拒绝访问权限,win7系统远程关机拒绝访问的解决方法
  15. 根据投资回报率(ROI)进行决策
  16. 怎样截屏计算机桌面,如何快速截图? 电脑桌面截图快捷键是哪个【详细介绍】...
  17. Altium Designer--如何将视图进行翻转(Flipped)
  18. 移动端输入密码时调用英文软键盘
  19. JAVA基础知识学习全覆盖
  20. scrapy爬虫实例:凤凰网

热门文章

  1. C# 语法糖(Syntactic sugar)
  2. 关于Qt各个版本的下载地址
  3. 【大数据开发必看】项目一 电信客服
  4. php 0改成百 千_php 根据啊拉伯数字转变成大写中文数字
  5. 简单并不粗暴:自学产品的8个方法
  6. uniapp写一个登录页面
  7. 基于MPC的移动机器人轨迹跟踪控制qpOASES例程
  8. iPhone的来电铃声
  9. supervisor控制台运行出错,BACKOFF Exited too quickly
  10. 出差中,推荐几个百度,腾讯,抖音大佬的公众号