前言

常见的图像任务通常需要把照片统一成相同的格式,所以此文章正是为了统一格式而生,常见的主要有cv2和PIL.Image的相关操作,照片格式是一串数字加上后缀名

工具一:cv2

pip install opencv-python

之后就可以

import cv2

1.1 导包

import osimport cv2import sysimport numpy as np

1.2 路径设置

path = r"C:\\Users\\86775\\test_change\\"
path2 = r"C:\\Users\\86775\\test_change2\\"

1.3 改格式重新传

1.3.1 用os.path.splitext()来判断

images = os.listdir(path)
for i in os.listdir(path):print(os.path.splitext(i))  # ('34474006827920603', '.png')if os.path.splitext(i)[1] == ".jpeg":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".jpeg", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".png":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".png", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".JPG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".JPG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".PNG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".PNG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".jpg":img = cv2.imread(path + i)# print(img)cv2.imwrite(path2 + i, img)

1.3.2 用split()来判断

images = os.listdir(path)
for i in os.listdir(path):print(i.split("."))if i.split(".")[1] == "jpeg":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".jpeg", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "png":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".png", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "JPG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".JPG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "PNG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".PNG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "jpg":img = cv2.imread(path + i)# print(img)cv2.imwrite(path2 + i, img)

1.4 查看结果

工具二:pillow

pip install pillow

之后就可以

from PIL import Image

2.1 导包

import osfrom PIL import Image

2.2 路径设置

path = r"C:\\Users\\86775\\test_change\\"
path2 = r"C:\\Users\\86775\\test_change2\\"

2.3 写格式修改函数

RGBA意思是红色,绿色,蓝色,Alpha的色彩空间,Alpha指透明度,而JPG不支持透明度。
所以其他格式不转jpg可以直接保存为.png格式,转jpg就需要丢弃Alpha
img = img.convert(“RGB”),转换成RGB,保证和jpg格式的通道数相同,也算一种图片类型变换的防报错机制

def jpeg2jpg(path_in, path_out):img = Image.open(path_in)img = img.convert("RGB")img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)def png2jpg(path_in, path_out):img = Image.open(path_in)img = img.convert("RGB")img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)def JPG2jpg(path_in, path_out):img = Image.open(path_in)img = img.convert("RGB")img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)def PNG2jpg(path_in, path_out):img = Image.open(path_in)img = img.convert("RGB")img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)def jpg2jpg(path_in, path_out):img = Image.open(path_in)img = img.convert("RGB")img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)

2.4 开始转换

images = os.listdir(path1)
for i in images:print(i)if os.path.splitext(i)[1] == ".jpeg":source = path1 + "\\" + str(i.split(".")[0]) + ".jpeg"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"jpeg2jpg(source, target)elif os.path.splitext(i)[1] == ".png":source = path1 + "\\" + str(i.split(".")[0]) + ".png"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"png2jpg(source, target)elif os.path.splitext(i)[1] == ".JPG":source = path1 + "\\" + str(i.split(".")[0]) + ".JPG"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"JPG2jpg(source, target)elif os.path.splitext(i)[1] == ".PNG":source = path1 + "\\" + str(i.split(".")[0]) + ".PNG"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"PNG2jpg(source, target)elif os.path.splitext(i)[1] == ".jpg":source = path1 + "\\" + str(i.split(".")[0]) + ".jpg"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"jpg2jpg(source, target)

2.5 查看结果

利用python转换图片格式相关推荐

  1. js 利用canvas转换图片格式并下载图片

    1.利用canvas转换格式 思路很简单,就是在canvas上drawImage,然后再把canvas转换成想要的图片格式 convertImageToCanvas = (image) => { ...

  2. 利用python将图片格式转为PDF

    之前在朋友圈发现有人要将图片转为PDF,想着自己记录一下啊,不知道以后能不能用的上 需要的两个库(pillow,pypdf2) pip install xxx 就好了 代码部分 import os f ...

  3. 使用python将图片格式转换为ico格式

    因为python打包的时候需要用到ico图片格式,网上看好的图片又没有ico,于是自己寻找了一下python转换图片格式的方法,彻底解决这个问题,以后就可以自己轻松实现转化了,代码如下: " ...

  4. pythonmat文件转excel_利用python将图片转换成excel文档格式详解

    本文主要介绍了关于利用python将图片转换成excel文档的相关内容,编写了一小段Python代码,将图片转为了Excel,纯属娱乐,下面这篇文章主要给大家介绍了关于利用python将图片转换成ex ...

  5. pythonmat文件转excel,利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据 ...

  6. python读取图片文字为表格_利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据 ...

  7. python将excel转换成图片格式_利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据 ...

  8. python日常实用技能:利用python将图片转换成excel文档格式

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详 ...

  9. Python PIL调整图片大小、尺寸和转换图片格式,removebg改变图片背景、透明化处理

    1.简介:Python利用PIL Image可以调整图片尺寸(宽度和高度).图片大小和转换图片格式,Python利用removebg可以改变图片背景.透明化处理. 2.特点:简单方便.快速. 3.适用 ...

最新文章

  1. c语言中平均值用什么表示_学C语言有什么用?
  2. 如何设置Java Spring Boot JWT授权和认证
  3. Excel使用技巧,补充中。。。
  4. ios wkweb设置图片_iOS WKWebView的使用
  5. 每天中一次500万彩票,谷歌CEO 2019薪酬曝光,总计2.81亿美元
  6. python画动态图-Python使用matplotlib画动态图
  7. jupyter notebook输出表格
  8. Struts1.x ActionForm
  9. Mac版网易云音乐打不开
  10. 如何快速识别图片中的字体是什么字体
  11. Q-Q图和P-P图傻傻整不明白?
  12. 关于微信在线客服系统的实现(已经证实可用)
  13. 爱快iKuai 安装成功后运行提示程序运行中解决办法
  14. edg击败we视频_lpl2018春季赛2月4日WEvsEDG比赛视频:EDG2:1击败WE
  15. mysql中导入csv文件_怎么把csv文件导入mysql?
  16. 计算机科学与技术专业考数媒,数字媒体技术考研考什么
  17. iOS 指纹、Face ID验证 --- LocalAuthentication
  18. Java并发压力测试数据库_百万并发压力测试-如何用Java编写纯并发压力测试
  19. spring data jpa使用详解
  20. 11月23日:PHP中tp框架的入门以及mvc模式的了解

热门文章

  1. [NOI2019]回家路线
  2. 关于z-index的一些问题
  3. flask 必知必会
  4. Linux监控服务并主动重启
  5. JS高级——变量提升
  6. mysql中ibatis的limit动态传参
  7. post和get传值
  8. 标准C语言库 Glibc 2.15
  9. Linux IO多路复用之epoll网络编程,高并发的使用例子 (含源码)
  10. JVM GC调优总结 -Xms -Xmx -Xmn -Xss