[Python] ファイルのサフィックスを変更し、JPG から PNG、PNG から JPG に変換します

[Python] ファイルのサフィックスを変更し、JPG から PNG、PNG から JPG に変換します

序文

この記事では、JPG 形式の画像を PNG に変換する方法は 2 つだけあります。1 つ目は、os.rename を使用してファイルの拡張子を直接変更することです。2 つ目は、replace を使用することです。どちらも非常に多用途で、ほとんどすべての環境で使用できます。ファイル形式の変換ですが、若干の違いがあるので多くは言わずに公開していきます。

os.名前の変更

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)

交換する

写真を例として、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)

写真の 2 つの形式変換の違いは次のとおりです。下の図は、同じ JPG 形式を png 形式に変換する 2 つの方法を適用したものを示しています。左の図は方法 1、右の図は方法 2 です。チャンネル削除の影響もあるかと思いますが、方法2の方が若干ぼやけたような気がします。

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_43605229/article/details/124364887