-
Notifications
You must be signed in to change notification settings - Fork 0
/
convertImage_512px.py
59 lines (54 loc) · 2.2 KB
/
convertImage_512px.py
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
from PIL import Image as PilImage
import glob, os
import re
def getListImage(path):
"""Đối sô là một đường dẫn thư mục chứa file ảnh.
Trả về một danh sách đường dẫn các file ảnh"""
filePaths = glob.glob(path)
formatImage = [".png", ".jpg", ".jpeg", ".gif", ".bmp"]
listOfImages = []
for item in formatImage:
for filePath in filePaths:
if item in filePath:
listOfImages.append(filePath)
return listOfImages
def getNameImage(imagePath):
"""Đối số là đường dẫn ảnh.
Trả về tên cùng định dạng từ đường dẫn ảnh"""
regex = r'[^\\:*?"<>|\r\n]+$'
name = re.search(regex, imagePath).group(0)
return name
def makeName(imagePath):
"""Đối số là đường dẫn ảnh.
Trả về tên cùng định dạng png"""
name = getNameImage(imagePath)
for i in range(len(name)):
if name[i] == "." :
makeName = name[:i] + "Convert" + ".png"
return makeName
def convertSizeImage(imagePath, heightConvert = 512):
"""Đối số là một đường dẫn ảnh. heightConvert = 512px là mặc định.
Nếu height > 512px, thu bé height về 512px, trả về 1.
Nếu ảnh có định dạng khác png, convert ảnh về png.
Nếu height ảnh < 512px, trả về 0.
"""
image = PilImage.open(imagePath).convert("RGB")
width, height = image.size
if height < heightConvert:
if ".png" in getNameImage(imagePath):
print(getNameImage(imagePath) + " SIZE " + str(image.size))
else:
image.save(makeName(imagePath))
print(getNameImage(imagePath) + " SIZE " + str(image.size) + " --> " + makeName(imagePath))
return 0
scale = heightConvert/height
newWidth = int(width*scale)
newSizeImage = (newWidth, heightConvert)
newImage = image.resize(newSizeImage)
newImage.save(makeName(imagePath))
print("CONVERT " + getNameImage(imagePath) + " " + str(image.size) + " --> " + str(newImage.size))
return 1
PATH = "/*.*"
myList = getListImage(PATH)
for item in myList:
convertSizeImage(item)