• 售前

  • 售后

热门帖子
入门百科

python图片格式转换脚本

[复制链接]
摸金狂人 显示全部楼层 发表于 2022-1-8 08:09:46 |阅读模式 打印 上一主题 下一主题
目录


  • 前言
  • 1.cv2

    • 1.1 导包
    • 1.2 路径设置
    • 1.3 改格式重新传
    • 1.4 检察效果

  • 2.pillow

    • 2.1 导包
    • 2.2 路径设置
    • 2.3 写格式修改函数
    • 2.4 开始转换
    • 2.5 检察效果


前言

常见的图像使命通常必要把照片统一成雷同的格式,以是此文章正是为了统一格式而生,常见的主要有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

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作