Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello β I'm @olemoritz on Twitter.
Clipboard.get_image Crash in Pythonista Keyboard
-
@stephen Your
UIPasteboard = ObjCClass('UIPasteboard').generalPasteboard() img_from_pasteboard = UIPasteboard.image() png_raw_bytes=uiimage_to_png(img_from_pasteboard) with io.BytesIO(png_raw_bytes) as bIO: new_ui_img = ui.Image.from_data(bIO.getvalue(), 2) v.image = new_ui_img
or mine
UIPasteboard = ObjCClass('UIPasteboard').generalPasteboard() im = UIPasteboard.image() ObjCInstance(v).setImage_(im)
-
@cvp yours is beter not only cleaner but it is ALOT faster too. plus as u said the python ui.image only gets first frame π€π great job !
-
@mieq and @stephen this works for gif πΎ
import keyboard import ui import io from objc_util import * from PIL import Image class Gif(ui.View): def __init__(self,pil,duration): self.duration = duration self.ImageView = ui.ImageView() self.add_subview(self.ImageView) self.pil = pil self.update_interval = self.duration / self.pil.n_frames self.frame_id = 0 def pil2ui(self,imgIn): with io.BytesIO() as bIO: imgIn.save(bIO, 'PNG') imgOut = ui.Image.from_data(bIO.getvalue()) del bIO return imgOut def update(self): # Display individual frames from the loaded animated GIF file self.pil.seek(self.frame_id) self.ImageView.image = self.pil2ui(self.pil) self.frame_id = self.frame_id + 1 if self.frame_id >= self.pil.n_frames: self.frame_id = 0 def touch_ended(self,touch):j if self.update_interval == 0: self.update_interval = self.duration / self.pil.n_frames else: self.update_interval = 0 if __name__ == '__main__': UIPasteboard = ObjCClass('UIPasteboard').generalPasteboard() data = UIPasteboard.dataForPasteboardType_("com.compuserve.gif") b = nsdata_to_bytes(ObjCInstance(data)) pil = Image.open(io.BytesIO(b)) v = Gif(pil,1) v.present('sheet')#,hide_title_bar=True)
-
@cvp this should be added to examples or The Github collection πΊπ»
-
@stephen said:
this should be added to examples or The Github collection
I don't even know what it is π
-
@cvp collection of scripts for pythonista and this one i think is most popular public repo..
-
@stephen you know, there are only 4 interesting lines:
UIPasteboard = ObjCClass('UIPasteboard').generalPasteboard() data = UIPasteboard.dataForPasteboardType_("com.compuserve.gif") b = nsdata_to_bytes(ObjCInstance(data)) pil = Image.open(io.BytesIO(b))
-
@mieq I've tested, it is also ok for keyboard view.
-
@cvp yes but the amount of research i did earlier and still failed lol makes those few lines outstanding ππ
-
@cvp Perfect, I'm not surprised anymore, I already feel that no problem can stump you.π
-
-
-
-
@stephen π