ホームページ  >  記事  >  バックエンド開発  >  Pythonでjpgをpngに素早く変換し、リサイズする方法とは何ですか?

Pythonでjpgをpngに素早く変換し、リサイズする方法とは何ですか?

PHPz
PHPz転載
2023-05-27 13:30:371519ブラウズ

    Python jpg から png への変換とサイズ変更

    このフォルダー内のすべての .jpg を .png 形式に直接変換し、サイズ。

    依存関係

    ピロー ライブラリをインストールする必要があります:

    pip install pillow

    コード

    # -*- coding:utf-8 -*-
    
    # file name: jpg2png.py
    
    import os
    from PIL import Image
    
    list = os.listdir()
    
    for i in list:
        if i != 'jpg2png.py':
            print(i)
            Image.open(i).convert('RGBA').resize((512, 512)).save(i[:i.find('.')] + '.png')

    ファイル名に注意してください。サイズは括弧で囲む必要があります。

    欠点

    • 白い背景に移動できない

    Python は jpg 画像を png 画像にバッチ変換します

    # Python 画像形式 jpg を png に変換 (バッチ処理、サイズ変更なし)

    import os
    import PIL.Image as Image
    def changeJpgToPng(srcPath, dstPath):
        # 修改图像大小
        image = Image.open(srcPath)
    
        # 将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')
        image.save(png_name)
        pass
     if __name__ == '__main__':
        listPath = 'D:/BYLW666/deeplabv3-plus-pytorch-main/VOCdevkit/VOC2007/jpg/'#jpg图片
        srcPath = 'D:/BYLW666/deeplabv3-plus-pytorch-main/VOCdevkit/VOC2007/src/'#jpg图片
        dstPath = 'D:/BYLW666/deeplabv3-plus-pytorch-main/VOCdevkit/VOC2007/png/'#png图片
        print("开始转换...")
        filename_list = os.listdir(listPath)
        for d in filename_list:
            if d.count('.jpg') > 0:
                changeJpgToPng(srcPath + d, dstPath + d)
            pass
        print("完成了...")
    
    二、视频转图像或图像转视频
    import cv2
    import os
    
    
    def video2image():
        cap = cv2.VideoCapture("video/01.mp4")
        count = 1
        while True:
            success, frame = cap.read()
            if success == False:
                break
            cv2.imwrite("images/%d.jpg" % count, frame)
            count += 1
    
    
    def image2video():
        # 得到图像路径
        files = os.listdir("images/")
        # 对图像排序
        files.sort(key=lambda x: int(x.split(".")[0]))
        # 获取图像宽高
        h, w, _ = cv2.imread("images/" + files[0]).shape
        # 设置帧数
        fps = 30
    
        vid = []
        '''
        设置要保存的格式
        mp4:
            mp4v 
        avi:
            xvid
            i420
        '''
    
        # 保存视频路径和名称
        # save_path = "video/video.mp4"		# 保存视频路径和名称 MP4格式
        save_path = "video/video.avi"  # 保存视频路径和名称 av格式
    
        # 准备写入视频
        vid = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))
        # vid = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'xvid'), fps, (w, h))
        # vid = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'i420'), fps, (w, h))
    
        # 写入
        for file in files:
            img = cv2.imread("images/" + file)
            vid.write(img)
    
    
    if __name__ == '__main__':
        print("start...")
        video2image()
        #image2video()
        print("OK!")

    以上がPythonでjpgをpngに素早く変換し、リサイズする方法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。