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.
Trouble using imported images from Photos
-
Tried that too, same issue, thanks anyways.
-
except Exception as e: print(str(e))```
-
Thanks for that, exception is ‘could not load texture’
Had to remove ui.image.named as I couldn’t convert it to a texture for SpriteNode
Exception doesn’t really help us much, this is a weird one.
‘’’
try:
self.background = SpriteNode('IMG_0202.PNG')
except Exception as e:
print(str(e))
‘’’ -
@iOSBrett I have the same problem but only with big images, try with a litlle one, just to be sure. If ok, you will need to resize your photos
-
It definitely doesn’t work with big images, but I have same problem even with 200x300 images.
-
did you try the stuff with listdir, and os.path.exists? (actually, should have checked for ui.Image.named(filename) is None -- Image fails silently when the file is not found, and just returns None.
The error you are getting is the same one when a file does not exist, so we need to confirm the file does exist before going any further.
So, check if Image.named returns an image, and do that outside of setup, as scene error handling is funky. Then print os.abspath('.') and print(os.listdir('.'))
how did you get the file into pythonista?
-
@JonB Hello, no, it is not a problem of "file not found" but file too big. I've tried with two files in the root, one of 5MB gives the problem, the other of 40KB does not have any problem
-
That error can be both. So it is important to rule out path issues first.
For large images, does
named
fail when outside of scene? If not, try creating the SpriteNode outside of the scene.Have you tried using jpg instead of png? Jpg uses MUCH less memory.
-
@JonB My big image is a jpeg. It can be loaded in an ui.Image via named, even during the initial of the Scene but the error *OSError: could not load texture" occurs when set as SpriteNode
import ui from scene import * class MyScene (Scene): def setup(self): self.background_color = '#000000' ui_image = ui.Image.named('IMG_5903.JPG') # 5 MB 3672x4896 px self.background = SpriteNode(ui_image) # corrected 😢 self.background.position = self.size.width / 2, self.size.height / 2 self.add_child(self.background) run(MyScene())
-
-
@mikael I'll try but don't forget I only do that to help, personally, I never use Scene nor SpriteNode
-
@mikael Is 5MB too big?
-
I have the same problem with photo which is an upload of a photo of 4 MB 1536x2048 px, but on Imgur: only 43 KB 640x853 px
Thus not too big, perhaps content problemEdit: all examples of SpriteNode texture images I see on the net are "simple" images, not detailed images. I know I don't know anything about this matter, thus I only wanted to help but I obviously choosed an image not designed for textures. I'm sure I can't help, and I'm sorry to have be part in this topic, perhaps troubling the discussion.
-
-
@mikael I have trouble with the same picture after download from Imgur...it takes 43 KB, is it the same for you?
-
Sorry for all, I'm not proud of me. My little script loads an ui.Image but I had let the image name in the SpriteNode line. I'll go back in my bed.
-
import ui from scene import * class MyScene (Scene): def setup(self): self.background_color = '#000000' ui_image = ui.Image.named('IMG_5903.JPG') # 5 MB 3672x4896 px **** Error #ui_image = ui.Image.named('IMG_3735.JPG') # 4 MB 1536x2048 px **** ok #ui_image = ui.Image.named('IMG_6575.JPG') # 43 KB 640x853 px **** ok self.background = SpriteNode(ui_image) self.background.position = self.size.width / 2, self.size.height / 2 self.add_child(self.background) run(MyScene())
No error with photo of 4 Mb but error with photo of 5 Mb
-
-
what if you create the SpriteNode outside of the scene?
-
@JonB idem