【python】修改文件后缀,将JPG转换为PNG/PNG转换为JPG

【python】修改文件后缀,将JPG转换为PNG/PNG转换为JPG

前言

本文只要有两种方法实现将JPG格式图片转换为PNG,第一种为应用os.rename直接修改文件后缀;第二种为应用replace,二者的通用性都很高,几乎所有文件格式都可以转换,但也有略微差异,话不多说,直接开整。

os.rename

import os
#注意文件路径格式中要用“C:/file/img.jpg”
#或“C:\\file\\img.jpg”
#或r‘C:\file\img.jpg’
filename = 'textx4.jpg'
transF = os.path.splitext(filename) 
#将文件名与后缀分开。transF[0]为文件名,transF[1] 为后缀             
new_name = transF[0] + '.png'   
os.rename(filename, new_name) 

如果有多个文件要改为多种后缀的话可以采用下文批量操作:

import os
 
def Rename(filename):
    transF = os.path.splitext(file)
    if transF[1] == '.jpg':                   
        new_name = ext[0] + '.png'       
        os.rename(filename, new_name) 
    elif transF[1] == '.txt':
        new_name = ext[0] + '.py'
        os.rename(filename, new_name)

def transform(file_path):
    # 读取所有文件
    allFiles = os.listdir(file_path) 
    for file in allFiles:
        file_path1 = os.path.join(file_path, file) 
        if os.path.isdir(file_path1):  
            transform(file_path1)
        else:
            os.chdir(file_path)
            Rename(file) 
if __name__ == '__main__':        
	# 文件夹路径
	file_path = “C:/file”
	transform(file_path)

replace

以图片为例,应用opencv另存为图片,同时删除png图片的透明度通道,转化为3通道png图片

import cv2

def transFor(filename):                                      
    # img = cv2.imread(filename, 1)  
    filename = filename.replace(".JPG", ".png")   
    img = cv2.imread(filename, 1)           
    jpg_img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)
    #下面注释的这行最后这个数字0表示压缩程度,取值0-10,越大图片越模糊
    # cv2.imwrite('textx2.png', jpg_img,[cv2.IMWRITE_PNG_COMPRESSION, 0])  
    cv2.imwrite('text1.png', jpg_img)            
    
if __name__ == '__main__': 
	filename = 'text.jpg'
	transFor(filename)

两者格式转换对于图片的差异如下,下图为应用两种方法对同一张JPG格式进行装换,转为png格式左图为方法1右图为方法2,可能是删去一个通道的原因,感觉方法2的稍微更模糊一丢丢

在这里插入图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值