Einführung
Nachdem ich Xcode8 in den letzten zwei Tagen aktualisiert habe, habe ich festgestellt, dass sich die Anforderungen von Xcode an Symbole erneut geändert haben, und eine kleine Anwendung „IconKit“, die ich zuvor verwendet habe, hat sich geändert Der Rhythmus kann die Anforderungen von Xcode8 nicht mehr erfüllen.
Also dachte ich darüber nach, Python zu verwenden, um ein Skript zum Generieren von Symbolen zu erstellen.
Tatsächlich wurde dieses Skript vor langer Zeit geschrieben und nun zur Anpassung an iOS10 geändert und verbessert und auf GitHub gestellt.
Sie können die Darstellung sehen:
1.png
Code:
#encoding=utf-8 #by 不灭的小灯灯 #create date 2016/5/22 #update 2016/9/21 #support iOS 10 #site www.winterfeel.com import os import sys from PIL import Image iosSizes = ['20@1x','20@2x','20@3x','29@1x','29@2x','29@3x','40@1x','40@2x','40@3x','60@2x','60@3x','60@3x','76@1x','76@2x','167@1x'] androidSizes = [32,48,72,96,144,192] androidNames = ['ldpi','mdpi','hdpi','xhdpi','xxhdpi','xxxhdpi'] sizesiOS = [(640,960),(640, 1136),(750, 1334),(1242, 2208),(1536, 2048),(2048, 2732)] foldersiOS = ['iPhone4s','iPhone5','iPhone6','iPhone6plus','iPad','iPadLarge'] sizesAndroid = [(480,800),(720,1280),(1080,1920)] foldersAndroid = ['480x800','720x1280','1080x1920'] def processIcon(filename,platform): icon = Image.open(filename).convert("RGBA") if icon.size[0] != icon.size[1]: print 'Icon file must be a rectangle!' return if platform == 'android': #安卓圆角 mask = Image.open('mask.png') r,g,b,a = mask.split() icon.putalpha(a) if not os.path.isdir('androidIcon'): os.mkdir('androidIcon') index = 0 for size in androidSizes: im = icon.resize((size,size),Image.BILINEAR) im.save('androidIcon/icon-'+ androidNames[index]+'.png') index = index + 1 else: if not os.path.isdir('iosIcon'): os.mkdir('iosIcon') for size in iosSizes: originalSize = int(size.split('@')[0])#原始尺寸 multiply = int(size.split('@')[1][0:1])#倍数 im = icon.resize((originalSize*multiply,originalSize*multiply),Image.BILINEAR) im.save('iosIcon/icon'+size+'.png') print 'Congratulations!It\'s all done!' def walk_dir(dir,platform): files = os.listdir(dir) for name in files: if name.split('.')[-1] == 'jpg' or name.split('.')[-1] == 'png':#处理jpg和png produceImage(name,platform) print 'Congratulations!It\'s all done!' def produceImage(filename,platform): print 'Processing:' + filename img = Image.open(filename) index = 0 sizes = sizesiOS folders = foldersiOS if platform == 'android':#默认ios,如果是安卓 sizes = sizesAndroid folders = foldersAndroid for size in sizes: if not os.path.isdir(folders[index]): os.mkdir(folders[index]) if img.size[0] > img.size[1]:#如果是横屏,交换坐标 im = img.resize((size[1],size[0]),Image.BILINEAR) im.save(folders[index]+'/'+filename) else: im = img.resize(size,Image.BILINEAR) im.save(folders[index]+'/'+filename) index = index + 1 action = sys.argv[1]#action:icon or screenshot if action == 'screenshot': platform = sys.argv[2]#platform if platform == 'ios': walk_dir('./','ios') elif platform == 'android': walk_dir('./','android') else: print 'Hey,Platform can only be "ios" or "android" !' elif action == 'icon': filename = sys.argv[2]#image filename platform = sys.argv[3]#platform if not os.path.exists(filename): print 'Hey,File Not Found!' else: if platform == 'ios': processIcon(filename,'ios') elif platform == 'android': processIcon(filename,'android') else: print 'Hey,Platform can only be "ios" or "android" !' else: print 'Hey,action can only be "icon" or "screenshot" !'
Anforderungen an die Skriptumgebung
Python 2.7
PIL oder Pillow
Der Autor hat es persönlich getestet, vielleicht auch ich Zu naiv, ich habe verschiedene Methoden zur Installation von PIL ausprobiert und bekam immer Fehler. Schließlich habe ich Pillow verwendet und der Effekt war der gleiche.
So verwenden Sie das Skript
Geben Sie in der Windows-Befehlszeile oder im Mac-Terminal Folgendes ein:
python tool.py [Aktion] [ Dateiname] [Plattform]
Aktion: Symbol oder Screenshot
Dateiname: Symboldateiname, Screenshot erfordert keinen Dateinamen, wechselt automatisch
Plattform: iOS oder Android
Nennen Sie einige Beispiele:
Generieren Sie ein iOS-Symbol: python tool.py icon icon.jpg ios
Generieren Sie ein Android-Symbol: python tool.py icon icon.jpg android
iOS-Screenshots generieren: Python-Tool.py-Screenshot für iOS
Android-Screenshots generieren: Python-Tool.py-Screenshot für Android
Hinweis:
Um ein abgerundetes Android-Symbol zu generieren, müssen Sie ein PNG mit einer Größe von 512 x 512 und einer abgerundeten Ecke von 70 mm zuschneiden. Es ist bereits in GitHub enthalten.
Beim Erstellen von Screenshots werden automatisch alle JPG- und PNG-Dateien durchsucht und horizontale und vertikale Bildschirme automatisch identifiziert
Fazit
Wenn Sie Finden Sie es nützlich, willkommen. Markieren Sie es auf GitHub. Der Code ist einfach und mit Kommentaren leicht zu verstehen.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.
Weitere Artikel zum Thema Python-Generierung von Symbolen und Screenshots für iOS10 finden Sie auf der chinesischen PHP-Website!