data_process.py 1.35 KB
Newer Older
mashun1's avatar
mashun1 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
FFHQ 1024 x 1024 -> 512 x 512
"""
import os

from zipfile import ZipFile
from PIL import Image
from glob import glob
from tqdm import tqdm


# 解压缩并转换图片大小
def process_in_zip(zip_dir: str,
                   output_dir: str):
    for zfile in glob(os.path.join(zip_dir, "*.zip")):
        with ZipFile(zfile, "r") as zip_ref:
            print("extract from ", zfile)
            for file_info in tqdm(zip_ref.infolist()):
                file_name = file_info.filename
                
                if file_name.lower().endswith(('.png', 'jpg', 'jpeg')):
                    with zip_ref.open(file_name) as file:
                        ori_image = Image.open(file)
                        
                        resized_image = ori_image.resize((512, 512), Image.LANCZOS)
                        
                        output_path = os.path.join(output_dir, file_name)
                        
                        os.makedirs(os.path.dirname(output_path), exist_ok=True)
                        
                        resized_image.save(output_path)


if __name__ == "__main__":
    import argparse

    parser = argparse.ArgumentParser()
    
    parser.add_argument("--zip_dir", type=str)
    
    parser.add_argument("--output_dir", type=str)
    
    args = parser.parse_args()
    
    process_in_zip(args.zip_dir, args.output_dir)