-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcreate_mipmaps.py
More file actions
executable file
·65 lines (51 loc) · 2.51 KB
/
Copy pathcreate_mipmaps.py
File metadata and controls
executable file
·65 lines (51 loc) · 2.51 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from PIL import Image
import argparse
import os
def create_mipmaps(inputImage,outputDirectory='.',mipmaplevels=[1,2,3],outputformat='jpg',convertTo8bit=True):
if not os.path.isdir(outputDirectory):
os.makedirs(outputDirectory)
im = Image.open(inputImage)
#print('origmode',im.mode)
origsize = im.size
if convertTo8bit:
table=[ i/256 for i in range(65536) ]
im = im.convert('I')
im = im.point(table,'L')
#print('new mode',im.mode)
inputFileName = os.path.split(inputImage)[1]
for level in mipmaplevels:
newsize = tuple(map(lambda x: x/(2**level), origsize))
dwnImage = im.resize(newsize)
outpath = os.path.join(outputDirectory,inputFileName[0:-4]+'_mip%02d.'%level+outputformat)
dwnImage.save(outpath)
print(outpath,level,newsize)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Create downsampled images of the input image at different midmap levels")
parser.add_argument('--inputImage', help="Path to the input image.")
parser.add_argument('--outputDirectory',help="Path to save midmap images",default = None)
parser.add_argument('--mipmaplevels',nargs='*',help="mipmaplevels to generate",default = [1,2,3],type=int)
parser.add_argument('--outputformat',help="format to save images",default = 'jpg')
parser.add_argument('--verbose',help="verbose output",default=False,action="store_true")
args = parser.parse_args()
print('outdir',args.outputDirectory)
if args.outputDirectory is None:
args.outputDirectory = os.path.split(args.inputImage)[0]
if len(args.outputDirectory)==0:
args.outputDirectory='.'
create_mipmaps(args.inputImage,args.outputDirectory,args.mipmaplevels,args.outputformat)
# if not os.path.isdirf(args.outputDirectory):
# os.makedirs(args.outputDirectory)
# im = Image.open(args.inputImage)
# print('origmode',im.mode)
# origsize = im.size
# table=[ i/256 for i in range(65536) ]
# im = im.convert('I')
# im = im.point(table,'L')
# print('new mode',im.mode)
# inputFileName = os.path.split(args.inputImage)[1]
# for level in args.mipmaplevels:
# newsize = tuple(map(lambda x: x/(2**level), origsize))
# dwnImage = im.resize(newsize)
# outpath = os.path.join(args.outputDirectory,inputFileName[0:-4]+'_mip%02d.'%level+args.outputformat)
# dwnImage.save(outpath)
# print(outpath,level,newsize)