如何在iOS上运行Python+Pillow(PIL)(二)

本文介绍如何在iOS设备上结合Python和Pillow进行图像处理。通过使用跨平台UI库toga和Objective-C扩展实现相册访问,详细讲解了从选择图片到图像数据转换的过程,以供Pillow处理。最终实现Python在iOS上运行Pillow并展示处理结果。
摘要由CSDN通过智能技术生成

接上一篇

toga:关于toga,是跨平台的以python为开发工具的native UI集成工具包。其优势在于,跨平台的开发的界面,是native的UI。ios,mac,windows等等,最后打包发布后,从UI看,和原生系统下开发出的App没区别。

toga的做法是对现有的各平台的UI组件进行了集成和封装。由于,toga仍然处在开发中,所发布的UI组件框架仅仅是对常用的组件进行了集成,而当需要用到一些特别的组件时,必须自己来扩展。譬如,本项目需要用到ios系统中的相册功能,objective-c中是用imagePickerController来调取的。这在toga中是无法做跨平台集成的。因此,我们要使用它,必须自己来扩展。

objective-c的相册调用的方法,是通过delegate作为回调来最终获取图片的,因此,我们如果想在toga中用python来使用,方法一样,同样需要指定和集成delegate才能获取图片。具体细节很多。这里略过。下面是扩展的实际代码。

class TogaImagePickerView(UIImagePickerController):

    @property
    def window(self):
        return self._window

    def _init_(self,window):
        self._window=window



    @objc_method
    def imagePickerController_didFinishPickingMediaWithInfo_(self, sender, info) -> None:
    
        global im,data,buf,img
        global iv,main_box,main_window,button2,button1,AlbumImage
    
        #print("return from album")
        #pass
        #if self.interface.on_webview_load:
        #    self.interface.on_webview_load(self.interface)
        self.dismissViewControllerAnimated(False,completion=None)
        #global AlbumImage
        AlbumImage=info[UIImagePickerControllerOriginalImage]
        size = AlbumImage.size
        scale = AlbumImage.scale
        imagewidth = math.floor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值