如何在iOS上运行Python+Pillow(PIL)
Pillow是强大的图像处理器,却很难在iOS上运行,能在iOS上运行pillow,几乎是很多人甚至技术公司的需要。这使得手机作为当前常用的拍照工具无法能借助Pillow做图像处理。同时,使用python开发iOS App也是当前的一个重要需求。开源kivy和beeWare在这方面都有发展。
然而,通过google和百度出来的python+pillow+iOS的结果,都几乎没有可用的,或者说基本没有真正能跑的通的一个真实项目。
本文就是阐述,如何一步步,通过使用beeWare的基础架构工具(Rubicon和Toga),让Pillow(PIL)成功运行于iOS系统上。
App代码完全使用Python开发。最后的App功能就是允许从手机相册中选取一张图片,然后使用各种PIL图像功能对图像进行处理,并展示最终图像处理结果。
先看下最终App运行结果
从结果可见,python可访问手机相册,获得图片后,使用PIL功能进行各种处理,处理结果可以展现。只要稍稍改进,便可成为iOS的图片处理的App。当然,本文并不是针对如何开发App,因此,这部分留给读者自己扩展。
使用到的架构和工具
- BeeWare的Rubicon作为Python和Object-C的开发桥梁
- Beeware的toga作为跨平台的GUI工具
- Python3.7编译好的静态库.a (来自beeware suit)
- Pillow的C源程序和py源程序和图像解码插件libimg的c源程序
第一步:使用Beeware生成一个App基础架构
如果仅仅让Python+Pillow运行在iOS上,把python解释器编译成静态库,通过接口,也勉强可以运行。但实际问题是,如何读取相册,如何展示图片,这些必须用到objective- c的基础库。因此,和objective c的集成是必不可少的。这点上,beeWare的框架做的还不错,随着他提供的教程步骤,6步就能生成框架。熟悉的人几分钟就够了,当然对了解beeware的rubicon和toga的人来说,自己手动安装使用也可以。
beeware的App框架6步教程在这里ÿ