设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11537|回复: 0

python图片格式转换脚本

[复制链接]

77

主题

838

回帖

1506

积分

金牌会员

Rank: 6Rank: 6

积分
1506
发表于 2022-3-26 11:01:07 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
目录


前言

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

1.cv2

pip install opencv-python之后就可以import cv2

1.1 导包
  1. import os
  2. import cv2
  3. import sys
  4. import numpy as np
复制代码
1.2 路径设置
  1. path = r"C:\\Users\\86775\\PycharmProjects\\pythonProject2\\ResNet\\test_change\"
  2. path2 = r"C:\\Users\\86775\\PycharmProjects\\pythonProject2\\ResNet\\test_change2\"
复制代码
1.3 改格式重新传

1.3.1 用os.path.splitext()来判断
  1. images = os.listdir(path)
  2. for i in os.listdir(path):
  3.     print(os.path.splitext(i))  # ('34474006827920603', '.png')
  4.     if os.path.splitext(i)[1] == ".jpeg":
  5.         img = cv2.imread(path + i)
  6.         # print(img)
  7.         new_imagename = i.replace(".jpeg", ".jpg")
  8.         cv2.imwrite(path2 + new_imagename, img)

  9.     elif os.path.splitext(i)[1] == ".png":
  10.         img = cv2.imread(path + i)
  11.         # print(img)
  12.         new_imagename = i.replace(".png", ".jpg")
  13.         cv2.imwrite(path2 + new_imagename, img)

  14.     elif os.path.splitext(i)[1] == ".JPG":
  15.         img = cv2.imread(path + i)
  16.         # print(img)
  17.         new_imagename = i.replace(".JPG", ".jpg")
  18.         cv2.imwrite(path2 + new_imagename, img)

  19.     elif os.path.splitext(i)[1] == ".PNG":
  20.         img = cv2.imread(path + i)
  21.         # print(img)
  22.         new_imagename = i.replace(".PNG", ".jpg")
  23.         cv2.imwrite(path2 + new_imagename, img)

  24.     elif os.path.splitext(i)[1] == ".jpg":
  25.         img = cv2.imread(path + i)
  26.         # print(img)
  27.         cv2.imwrite(path2 + i, img)
复制代码
1.3.2 用split()来判断
  1. images = os.listdir(path)
  2. for i in os.listdir(path):
  3.     print(i.split("."))
  4.     if i.split(".")[1] == "jpeg":
  5.         img = cv2.imread(path + i)
  6.         # print(img)
  7.         new_imagename = i.replace(".jpeg", ".jpg")
  8.         cv2.imwrite(path2 + new_imagename, img)

  9.     elif i.split(".")[1] == "png":
  10.         img = cv2.imread(path + i)
  11.         # print(img)
  12.         new_imagename = i.replace(".png", ".jpg")
  13.         cv2.imwrite(path2 + new_imagename, img)

  14.     elif i.split(".")[1] == "JPG":
  15.         img = cv2.imread(path + i)
  16.         # print(img)
  17.         new_imagename = i.replace(".JPG", ".jpg")
  18.         cv2.imwrite(path2 + new_imagename, img)

  19.     elif i.split(".")[1] == "PNG":
  20.         img = cv2.imread(path + i)
  21.         # print(img)
  22.         new_imagename = i.replace(".PNG", ".jpg")
  23.         cv2.imwrite(path2 + new_imagename, img)

  24.     elif i.split(".")[1] == "jpg":
  25.         img = cv2.imread(path + i)
  26.         # print(img)
  27.         cv2.imwrite(path2 + i, img)
复制代码
1.4 查看结果



2.pillow

pip install pillow之后就可以from PIL import Image

2.1 导包
  1. import os
  2. from PIL import Image
复制代码
2.2 路径设置
  1. path1 = r"C:\\Users\\86775\\PycharmProjects\\pythonProject2\\ResNet\\test_change\"
  2. path2 = r"C:\\Users\\86775\\PycharmProjects\\pythonProject2\\ResNet\\test_change2\"
复制代码
2.3 写格式修改函数

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


  5. def png2jpg(path_in, path_out):
  6.     img = Image.open(path_in)
  7.     img = img.convert("RGB")
  8.     img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)


  9. def JPG2jpg(path_in, path_out):
  10.     img = Image.open(path_in)
  11.     img = img.convert("RGB")
  12.     img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)


  13. def PNG2jpg(path_in, path_out):
  14.     img = Image.open(path_in)
  15.     img = img.convert("RGB")
  16.     img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)


  17. def jpg2jpg(path_in, path_out):
  18.     img = Image.open(path_in)
  19.     img = img.convert("RGB")
  20.     img.save(path_out, "JPEG", quality=80, optimize=True, progressive=True)
复制代码
2.4 开始转换
  1. images = os.listdir(path1)
  2. for i in images:
  3.     print(i)
  4.     if os.path.splitext(i)[1] == ".jpeg":
  5.         source = path1 + "\" + str(i.split(".")[0]) + ".jpeg"
  6.         target = path2 + "\" + str(i.split(".")[0]) + ".jpg"
  7.         jpeg2jpg(source, target)
  8.     elif os.path.splitext(i)[1] == ".png":
  9.         source = path1 + "\" + str(i.split(".")[0]) + ".png"
  10.         target = path2 + "\" + str(i.split(".")[0]) + ".jpg"
  11.         png2jpg(source, target)
  12.     elif os.path.splitext(i)[1] == ".JPG":
  13.         source = path1 + "\" + str(i.split(".")[0]) + ".JPG"
  14.         target = path2 + "\" + str(i.split(".")[0]) + ".jpg"
  15.         JPG2jpg(source, target)
  16.     elif os.path.splitext(i)[1] == ".PNG":
  17.         source = path1 + "\" + str(i.split(".")[0]) + ".PNG"
  18.         target = path2 + "\" + str(i.split(".")[0]) + ".jpg"
  19.         PNG2jpg(source, target)
  20.     elif os.path.splitext(i)[1] == ".jpg":
  21.         source = path1 + "\" + str(i.split(".")[0]) + ".jpg"
  22.         target = path2 + "\" + str(i.split(".")[0]) + ".jpg"
  23.         jpg2jpg(source, target)
复制代码
2.5 查看结果


到此这篇关于python图片格式转换脚本的文章就介绍到这了,更多相关python图片格式转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表