Python 圖片格式的轉換和尺寸修改


import cv2
import os
import numpy as np
from PIL import Image
import shutil
import sys

image_size=144
#改變之后的圖片尺寸

source_path=os.getcwd()+"/image/"#等待轉換的圖片存放地址
types='png' #轉換后的圖片格式
target_path=os.getcwd()+"/changepng/"#轉換過格式的圖片存放地址
final_path=os.getcwd()+"/final/"轉換過格式和尺寸的圖片存放地址

#如果沒有轉換后的圖片存放文件夾,就創建對應的文件夾
if not os.path.exists(target_path):
    os.makedirs(target_path)
if not os.path.exists(final_path):
    os.makedirs(final_path)

#轉變圖片格式的函數
def changepng(source_path,types):
    files = []
    image_list=os.listdir(source_path)
    #print(image_list)
    files = [os.path.join(source_path,_) for _ in image_list]
    for index,jpg in enumerate(files):
        if index > 1000:
            break
        try:
            sys.stdout.write('\r>>Converting image %d/100000 ' % (index))
            sys.stdout.flush()
            im = Image.open(jpg)
            png = os.path.splitext(jpg)[0] + "." + types
            im.save(png)
            shutil.move(png,target_path)
        except IOError as e:
            print('could not read:',jpg)
            print('error:',e)
            print('skip it\n')
    sys.stdout.write('Convert Over!\n')
    sys.stdout.flush()

#轉化圖片尺寸的函數
def changesize(source_path):
    image_lists=os.listdir(source_path)
    i=0
    for file in image_lists:
        i=i+1
        print(os.getcwd()+"/"+file)
        split=os.path.splitext(file)
        filename,type=split
        image_file = source_path+file
        image_source=cv2.imdecode(np.fromfile(image_file,dtype=np.uint8),cv2.IMREAD_UNCHANGED)
        image = cv2.resize(image_source, (image_size, image_size))
        cv2.imencode('.png',image)[1].tofile(final_path+file)


changepng(source_path,types)
changesize(target_path)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM