Trouble using imported images from Photos
what if you create the SpriteNode outside of the scene?
ohh, ok. scene Textures are opengl based, i think. So you cannot have a Texture that is larger in pixels that the graphics memory region, which is something like twice largest screen size (for retina displays).
with ui.ImageContext(1024*2,1024*2) as ctx: #ui.Image.named('IMG_0625.JPG').draw() Texture(ctx.get_image())
The above works, on my Ipad3. Anything up to 2048 in either row/col works, but even 2049x1 fails. so, that tells me the opengl textures must be <=2048 in either dimension.
I‘m having a somewhat similar issue, I can’t even load an image that’s 511 kB in size. I haven’t used the scene module for some time now and my memory is a bit rusty, but the following code should run without an issue, right?
Here it is:
from scene import * import os A = Action class MyScene (Scene): def setup(self): img = 'rectangle_1.png' self.background_color = 'white' if img in os.listdir(): print('yes') #prints 'yes' in console print(ui.Image.named('IMG_5903.JPG')) #prints None in console #a = Texture(img) #Image not found a = SpriteNode(img) #could not load texture self.add_child(a) pass if __name__ == '__main__': run(MyScene(), show_fps=False)
Wouldn’t you need an
img = 'rectangle_1.png' self.background_color = 'white' if img in os.listdir(): print('yes') printt(ui.Image.named(img))
You were checking one file, but trying to open a different one
@pulbrich no, it actually functions. The output is the same if I use “import ui” and when I don’t.
@JonB your suggestion prints the following:
<_ui.Image object at 0x108fe9e40>
I figured out the issue. Whenever I import an image from my camera roll, it’s ending is in caps (.PNG). Renaming it to .png causes the issue, so I’m just going to not do that :)