Python实现图片格式转换

liftword3个月前 (01-08)技术文章27

在日常生活和工作中经常遇到需要转换图片格式的情况,网上有很多图片转换工具,但都需要注册登录,还有的要收费,作为一个程序员怎么能花这冤枉钱,于是就想着自己开发一个可以转换图片格式的软件。

界面设计

虽然只是开发一个小工具软件,但也要按照软件开发的基本思路进行,首先进行构思设计要开发一个什么样的软件。图片转换功能最基本的需要选取本地的图片,然后转换后保存到一个目录。于是我设计了一个最简易的软件界面,如下图所示:

网络中的图片格式有很多,我选择了常见的svg、bmp、jpg、jpeg、gif、png、tiff、webp等格式进行转换。在上图“图片格式”设计成下拉框可以选择图片格式。

技术选型

界面初步设计完成后,还要考虑实现这个功能都可用哪些技术实现,经过一番考虑决定使用Python语言进行开发,界面开发使用PyQt5库,PyQt5有个界面设计工具Qt designer可以进行设计布局和控件如下图所示:

界面设计完成后可以导出一个ui文件供后面开发时使用如下图所示:


最后软件的核心功能图片转换功能使用Pillow库,对于svg格式的图片使用cairosvg库。

代码实现

使用ui文件开发界面有两种方式,一种是直接加载ui文件,还有一种是使用命令将ui文件转换为Python文件,命令如下:

pyuic5 imgConvert.ui -o imgConvert.py

转换后的Python文件部分代码如下图:

我最后选择直接加载ui文件进行开发,加载完ui文件还需要实现选择本地图片、选择转换后图片保存位置、获取本地图片、进行转换、保存图片等功能,部分代码如下图所示:

运行测试

到此代码已经开发完成了,运行代码测试功能是否有错误,功能是否完成,能否进行格式转换。运行后界面如下图所示:

选择本地图片、图片格式、输出目录,点击“转换”按钮进行转换,如下图所示:

相关文章

怎么做到的?用python制作九宫格图片,太棒了

1. ? 应用场景 ?当初的想法是:想把一张图切割成九等份,发布到微信朋友圈,切割出来的图片,上传到朋友圈,发现微信不按照我排列的序号来排版。这样的结果是很耗时间的。让我深思,能不能有一种,直接拼接成...

python图像处理入门-提取轮廓

提取图像中物体的轮廓,通常用在图像识别中,比如图像像素级分割,应用面比较广。import cv2 import numpy as np from skimage.measure import fi...

Python中如何操作Surface对象绘制图形?

在Surface对象上绘制图形分为加载图片和绘制图片两个步骤。(1)加载图片加载图片即将图片读取到程序中,通过pygame中 image模块的load()方法可以向程序中加载图片,生成Surface对...

python批量生成二维码图片

1、创建一个TXT文本文档,用来存放需要生成二维码的单号,每行一个单号,单号如下:14251564612316sw132132并保存。2、在scewm.py文件中输入代码,代码如下:import qr...

如何在 Python 中从图像中提取表格

大约一年前,我的任务是从文档中提取和构建数据,主要包含在表格中。我没有计算机视觉方面的先验知识,很难找到合适的“即插即用”解决方案。可用的选项要么是基于神经网络 (NN) 的先进解决方案,这些解决方案...

如何使用python裁剪图片?

如何使用python裁剪图片如上图所示,这是一张包含了各类象棋棋子的图片。我们需要将其中每一个棋子都裁剪出来,此时可以利用python的 PIL库 实现。一、 安装PIL库如果此前没有安装过PIL库,...