首頁 後端開發 Python教學 Python為iOS10產生圖示和截圖

Python為iOS10產生圖示和截圖

Feb 24, 2017 pm 03:55 PM
圖示 螢幕截圖

簡介

這兩天更新完Xcode8之後發現Xcode對圖示的要求又有了變化,之前用的一個小應用程式「IconKit」還沒趕上節奏,已經不能滿足Xcode8的要求了。

於是就想起來用Python自己做個腳本來產生圖示。

其實這個腳本很早就寫了,現在為了適應iOS10,就修改完善下,並且放到了GitHub。

可以看看效果圖:

 1.png

#程式碼:

##

#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" !'
登入後複製

腳本環境要求

Python 2.7

PIL or Pillow

筆者親測,也許是筆者太菜,試了各種方法安裝PIL總是出錯,最後還是用了Pillow,效果一樣的。

怎麼使用腳本

在Windows的命令列或Mac的終端,輸入:

python tool.py [action] [ filename] [platform]

action:icon 或screenshot
filename:圖示檔名,截圖不需要檔名,自動遍歷
platform:ios 或android

#舉一些例子:

產生iOS的圖示:python tool.py icon icon.jpg ios

產生安卓的圖示:python tool.py icon icon.jpg android

#產生iOS的截圖:python tool.py screenshot ios

產生安卓的截圖:python tool.py screenshot android


注意:

產生安卓圓角圖示需要一張PNG來裁剪,尺寸512x512,70圓角,GitHub中已經附帶。

產生截圖時會自動遍歷所有JPG和PNG文件,自動識別橫豎屏

#結語
##如果你覺得有用,歡迎在GitHub中Star一下,也歡迎改進,程式碼簡單易懂加了註解。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持PHP中文網。


更多Python為iOS10產生圖示與截圖相關文章請關注PHP中文網!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
Win11怎麼停用工作列縮圖預覽? 關閉滑鼠移動工作列圖示顯示縮圖技巧 Win11怎麼停用工作列縮圖預覽? 關閉滑鼠移動工作列圖示顯示縮圖技巧 Feb 29, 2024 pm 03:20 PM

本文將介紹如何在Win11系統中關閉滑鼠移動工作列圖示時顯示的縮圖功能。這項功能在預設情況下是開啟的,當使用者將滑鼠指標懸停在工作列上的應用程式圖示上時,會顯示該應用程式的目前視窗縮圖。然而,有些用戶可能覺得這個功能不太實用或會幹擾到他們的使用體驗,因此想要關閉它。工作列縮圖可能很有趣,但它們也可能分散注意力或煩人。考慮到您將滑鼠懸停在該區域的頻率,您可能無意中關閉了重要視窗幾次。另一個缺點是它使用更多的系統資源,因此,如果您一直在尋找一種提高資源效率的方法,我們將向您展示如何停用它。不過

如何在我的所有 Windows 11 顯示器上顯示系統托盤圖標 如何在我的所有 Windows 11 顯示器上顯示系統托盤圖標 Sep 22, 2023 pm 03:21 PM

使用多顯示器設定時,使用者希望在所有顯示器上顯示托盤圖標,以便跟上最新通知或存取某些應用程式。這可能非常有用,在今天的指南中,我們將向您展示如何正確啟用此功能。如何在Windows11中的所有顯示器上顯示托盤圖示? 1.使用顯示融合軟體造訪DisplayFusion網站並下載軟體。下載軟體後,運行安裝檔並安裝它。啟動軟體並根據需要進行配置。在第二個畫面上,以滑鼠右鍵按一下工作列,選擇多顯示器工作列,然後選擇系統匣。最後,檢查顯示/隱藏圖示.完成此操作後,您應該在Windows11上的兩台顯示器上取得系統

如何在Ubuntu開始功能表中移除圖示? 如何在Ubuntu開始功能表中移除圖示? Jan 13, 2024 am 10:45 AM

ubuntu系統開始選單裡面列出了很多的軟體圖標,有很多不常用的圖標,想要刪除,該怎麼刪除呢?下面我們就來看看詳細的教學。 1.先進入ubuntu桌面,點選左邊面板下面的開始選單。 2、裡面可以找到一個文字編輯器圖標,我們要把它刪除了。 3.現在我們回到桌面直接滑鼠右鍵開啟終端。 4、使用指令開啟應用程式列表目錄。 sudonautilus/usr/share/applicationssudonautilus~/.local/share/applications5、在裡面找到對應的文字編輯器圖示。 6、接著直

vivo手機中截圖的方法介紹 vivo手機中截圖的方法介紹 Mar 22, 2024 pm 05:36 PM

1.從螢幕底部往上滑動點選開啟【超截圖】。 2.依需求選擇【長截圖】或【長方形截圖】,以長方形截圖為例,點選矩形截圖。 3.選擇需要截圖的區域,然後點選【儲存】就可以了。

下載手機設定圖示到桌面「秒懂:Android手機為應用程式換圖示步驟」 下載手機設定圖示到桌面「秒懂:Android手機為應用程式換圖示步驟」 Feb 06, 2024 pm 04:27 PM

為了美化桌面,許多用戶喜歡定期更換桌面主題,隨時保持新鮮感。不過,換主題卻不會更改第三方APP的圖標,個性美化不夠徹底。如果你厭倦了千篇一律的應用程式圖標,不妨將它們替換掉。理論上,想為手機APP換圖標,通常需要ROOT系統和一些工具來拆包裝替換圖標。但由於絕大多數手機不再支援ROOT系統,我們需要尋找其他方法來實現。例如,一些特定的應用程式可能提供了自訂圖示的選項,或者可以透過第三方啟動器來實現個人化圖示。此外,一些手機品牌也推出了專門的主題和圖標商店,供用戶選擇和更換圖標。在各大應用程式商店中,

淘寶截圖分享在哪裡關閉 淘寶截圖分享在哪裡關閉 Feb 27, 2024 pm 08:46 PM

淘寶是一款功能強大的購物軟體,它提供了許多實用的功能,其中截圖分享是一個非常方便的功能。這個功能可以幫助使用者快速將喜歡的商品分享給朋友或家人,讓大家一起享受購物的樂趣。同時,這也是一種非常有效的推廣方式,可以讓更多人了解好的商品。那麼究竟該如何在淘寶中進行截圖分享呢,希望這篇教學攻略能幫助大家帶來更加良好的淘寶使用體驗。淘寶截圖後跳出來分享介面怎麼關閉? 1.先打開手機淘寶,進入設定頁以後點選通用。 2.最後進入通用頁面,將截圖後出現分享視窗後方的開關按鈕關閉即可。

您的T-mobile智慧型手機上的5G UC與5G UW圖示的意思是什麼? 您的T-mobile智慧型手機上的5G UC與5G UW圖示的意思是什麼? Feb 24, 2024 pm 06:10 PM

T-Mobile用戶已經開始注意到,他們的手機螢幕上的網路圖示有時顯示為5GUC,而其他業者則顯示為5GUW。這並不是拼字錯誤,而是代表不同類型的5G網路。事實上,營運商們正在不斷擴大他們的5G網路覆蓋範圍。在這個主題中,我們將探討T-Mobile智慧型手機上顯示的5GUC和5GUW圖示的意思。這兩種標誌代表著不同的5G技術,每種技術都有其獨特的特點和優點。透過了解這些標誌的含義,使用者可以更了解他們所連接的5G網路類型,以便選擇最適合自己需求的網路服務。 5GUCVS5GUW圖示在T

win10截圖閃退怎麼辦? win10截完圖閃一下就不見了的解決辦法 win10截圖閃退怎麼辦? win10截完圖閃一下就不見了的解決辦法 Jun 02, 2024 pm 12:48 PM

win10截完圖閃一下就不見了造成的原因有很多,用戶們可以先檢查截圖保存位置或者是調整截圖設置,或者是檢查動畫效果來進行查看。實在不行的話也可以選擇更新驅動程式和作業系統來進行操作,下面就讓本站來為用戶們來仔細的介紹一下win10截完圖閃一下就不見了問題解析吧。 win10截完圖閃一下就不見了問題解析1、檢查截圖儲存位置:使用Win+PrtSc(PrintScreen)組合鍵進行截圖時,截圖通常會儲存到C:\Users\YourUsername\Pictures\Screenshots資料夾中。請

See all articles