Python如何将jpg图像修改大小并转换为png

 更新时间:2023年09月11日 15:21:54   作者:回炉重造P  
这篇文章主要介绍了Python如何将jpg图像修改大小并转换为png问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python将jpg图像修改大小并转换为png

简单利用pillow库实现的大小与格式转换的脚本。

实现

import os
import PIL.Image as Image
def changeJpgToPng(w, h, path):
    # 修改图像大小
    image = Image.open(path)
    image = image.resize((w, h), Image.ANTIALIAS)
    # 将jpg转换为png
    png_name = str(path)[0:-len('.jpg')] + '_min.png'
    image.save(png_name)
    print(png_name)
    # 去白底
    image = image.convert('RGBA')
    img_w, img_h = image.size
    color_white = (255, 255, 255, 255)
    for j in range(img_h):
        for i in range(img_w):
            pos = (i, j)
            color_now = image.getpixel(pos)
            if color_now == color_white:
                # 透明度置为0
                color_now = color_now[:-1] + (0,)
                image.putpixel(pos, color_now)
    image.save(png_name)
if __name__ == '__main__':
    t_w = 300
    t_h = 150
    dic = os.listdir('image')
    for d in dic:
        if d.count('.jpg') > 0:
            changeJpgToPng(t_w, t_h, 'image/' + d)

参考实现了去白底的功能,简单循环对比。

结构

Python批量实现jpg图片修改大小并转换为png(图像通道:RGB,适配KITTI数据集)

# python:批量实现jpg图片修改大小并转换为png
# author:zhou jinxing
import os
import PIL.Image as Image
def changeJpgToPng(w, h,srcPath,dstPath):
    # 修改图像大小
    image = Image.open(srcPath)
    image = image.resize((w, h), Image.ANTIALIAS)
    # 将jpg转换为png
    png_name = str(dstPath)[0:-len('.jpg')] + '.png'
    image.save(png_name)
    print(png_name)
    # 去白底
    #image = image.convert('RGBA')
    image = image.convert('RGB')
    img_w, img_h = image.size
    #color_white = (255, 255, 255, 255)
    color_white = (255, 255, 255)
    for j in range(img_h):
        for i in range(img_w):
            pos = (i, j)
            color_now = image.getpixel(pos)
            if color_now == color_white:
                # 透明度置为0
                color_now = color_now[:-1] + (0,)
                image.putpixel(pos, color_now)
    image.save(png_name)
if __name__ == '__main__':
    t_w = 1242
    t_h = 375
    #srcPath = '/workspace/tlt-experiments/data_fire/image_2_jpg/'
    #dstPath = '/workspace/tlt-experiments/data_fire/image_2_png/'
    srcPath = '/workspace/tlt-experiments/data_fire/012/training/image_2/'
    dstPath = '/workspace/tlt-experiments/data_fire/012/training/image_2_png/'    
#    filename_list = os.listdir('/workspace/tlt-experiments/data_fire/image_2_jpg')
#    for d in dic:
#        if d.count('.jpg') > 0:
#            changeJpgToPng(t_w, t_h, 'image/' + d)
    print("开始转换...")
    filename_list = os.listdir('/workspace/tlt-experiments/data_fire/012/training/image_2')
    for d in filename_list:
        if d.count('.png') > 0:
            changeJpgToPng(t_w, t_h,srcPath + d,dstPath + d)
        pass
    print("完成了...")

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 中urls.py:URL dispatcher(路由配置文件)详解

    Python 中urls.py:URL dispatcher(路由配置文件)详解

    这篇文章主要介绍了Python 中urls.py:URL dispatcher(路由配置文件)详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • Python数据类型最全知识总结

    Python数据类型最全知识总结

    学习一门语言,往往都是从Hello World开始. 但是笔者认为,在一个黑框框中输出一个“你好,世界”并没有什么了不起,要看透事物的本质,熟悉一门语言,就要了解其底层,就是我们常常说的基础,本篇从python中的数据类型开始,需要的朋友可以参考下
    2021-05-05
  • Python爬虫利用cookie实现模拟登陆实例详解

    Python爬虫利用cookie实现模拟登陆实例详解

    这篇文章主要介绍了Python爬虫利用cookie实现模拟登陆实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • RC4文件加密的python实现方法

    RC4文件加密的python实现方法

    这篇文章主要介绍了RC4文件加密的python实现方法,实例分析了RC4文件加密的原理与Python实现技巧,需要的朋友可以参考下
    2015-06-06
  • 浅谈Python_Openpyxl使用(最全总结)

    浅谈Python_Openpyxl使用(最全总结)

    这篇文章主要介绍了浅谈Python_Openpyxl使用(最全总结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • python 进程 进程池 进程间通信实现解析

    python 进程 进程池 进程间通信实现解析

    这篇文章主要介绍了python 进程 进程池 进程间通信实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • numpy.random.seed()的使用实例解析

    numpy.random.seed()的使用实例解析

    这篇文章主要介绍了numpy.random.seed()的使用实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 一篇文章快速了解Python的GIL

    一篇文章快速了解Python的GIL

    这篇文章主要介绍了一篇文章快速了解Python的GIL,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python设计模式之MVC模式简单示例

    Python设计模式之MVC模式简单示例

    这篇文章主要介绍了Python设计模式之MVC模式,简单介绍了MVC模式的概念、原理,并结合实例形式给出了Python实现与使用MVC模式的相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Python面向对象程序设计之继承、多态原理与用法详解

    Python面向对象程序设计之继承、多态原理与用法详解

    这篇文章主要介绍了Python面向对象程序设计之继承、多态,结合实例形式分析了Python面向对象程序设计中继承、多态的相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03

最新评论