omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular

    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.


    How to debug crash of image script when it's called as extension

    Pythonista
    4
    29
    6516
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • halloleooo
      halloleooo @cvp last edited by

      @cvp Thanks for the detailed script.

      One thing I am wondering about is: You get the images from the share extension as PIL images via

      appex.get_attachments()
      

      and then convert them to UI images. Isn't there a way to get them directly as UI images? I thought UI image is the iOS-native format...

      cvp 1 Reply Last reply Reply Quote 0
      • cvp
        cvp @halloleooo last edited by cvp

        @halloleooo you're right but we got some problems with images in appex mode, thus...
        Else, I use this where you can set type you want

        img = appex.get_image(image_type='pil')
        
        1 Reply Last reply Reply Quote 0
        • JonB
          JonB last edited by

          Doesn't appex provide a get_ui_image function? That will be much lighter weight than going through PIL and back.

          cvp 1 Reply Last reply Reply Quote 1
          • cvp
            cvp @JonB last edited by cvp

            @JonB sure, he knows that, but in the past, we got some problems with it.

            Édit: believe me, if we go through pil, it is not for the pleasure to do it.

            halloleooo 1 Reply Last reply Reply Quote 0
            • halloleooo
              halloleooo @cvp last edited by

              @cvp So what are the problems with get_ui_image?

              cvp 2 Replies Last reply Reply Quote 0
              • cvp
                cvp last edited by

                Correction: appex does not have a get_ui_image

                1 Reply Last reply Reply Quote 0
                • cvp
                  cvp last edited by

                  We mixed with asset.get_ui_image

                  1 Reply Last reply Reply Quote 0
                  • cvp
                    cvp last edited by

                    I have been disturbed only because the post comes from @JonB

                    1 Reply Last reply Reply Quote 0
                    • cvp
                      cvp @halloleooo last edited by cvp

                      @halloleooo doc dixit, you could try with

                      img = appex.get_image(image_type='ui')
                      
                      #files = appex.get_attachments()
                      #for f in files:
                      files = appex.get_images(image_type='ui')
                      for ui_image in files:
                      	#pil = Image.open(f)#,mode='r')
                      	#ui_image = pil2ui(pil)
                      	#del pil
                      
                      1 Reply Last reply Reply Quote 0
                      • halloleooo
                        halloleooo last edited by ccc

                        I think the Pyhonista docs mentions appex.get_ui_image(). Is this wrong?

                        cvp 5 Replies Last reply Reply Quote 0
                        • cvp
                          cvp @halloleooo last edited by

                          @halloleooo modif just above also crashes with two big photos...

                          1 Reply Last reply Reply Quote 0
                          • cvp
                            cvp @halloleooo last edited by

                            @halloleooo said:

                            I think the Pyhonista doco mentions appex.get_ui_image(). Is this wrong?

                            The internal doc, reached via help, and the source of appex.py do not mention it

                            1 Reply Last reply Reply Quote 0
                            • cvp
                              cvp @halloleooo last edited by

                              @halloleooo but, as I said previously, asset.get_ui_image exists

                              1 Reply Last reply Reply Quote 0
                              • cvp
                                cvp @halloleooo last edited by

                                @halloleooo print dir(appex) to confirm

                                1 Reply Last reply Reply Quote 0
                                • cvp
                                  cvp @halloleooo last edited by

                                  @halloleooo I said"modif just above also crashes with two big photos..." but with pil it works

                                  1 Reply Last reply Reply Quote 0
                                  • cvp
                                    cvp @halloleooo last edited by cvp

                                    @halloleooo ok, now, Forget all, this works, by commenting the del ui_image
                                    and is quicker than converting pil
                                    even with wi=1000 with two photos of 2600x4000 pixels

                                    # assume two images are shared
                                    #files = appex.get_attachments()
                                    #for f in files:
                                    files = appex.get_images(image_type='ui')
                                    for ui_image in files:
                                    	#pil = Image.open(f)#,mode='r')
                                    	#ui_image = pil2ui(pil)
                                    	#del pil
                                    	w,h = ui_image.size
                                    	wi = 400
                                    	hi = wi*h/w
                                    	with ui.ImageContext(wi,hi) as ctx:
                                    		ui_image.draw(0,0,wi,hi)
                                    		#del ui_image
                                    		ui_resize = ctx.get_image()
                                    		ui_images.append(ui_resize)
                                    		del ui_resize		
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • JonB
                                      JonB last edited by

                                      @cvp, sorry, I did not actually try it -- per the release notes there is supposed to be appex.get_ui.image().

                                      didn't actually look -- but

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post
                                      Powered by NodeBB Forums | Contributors