예제 #1
0
    def test_reload_asyncimage(self):
        from kivy.resources import resource_find
        from kivy.uix.image import AsyncImage

        temp_dir = mkdtemp()
        event = Event()
        image = AsyncImage()
        image.bind(on_load=lambda *args, **kwargs: event.set())

        fn = resource_find('data/logo/kivy-icon-16.png')
        source = join(temp_dir, 'source.png')
        copyfile(fn, source)
        event.clear()
        image.source = source
        self.wait_for_event_or_timeout(event)
        self.render(image, framecount=2)
        self.assertEqual(image.texture_size, [16, 16])
        remove(source)

        fn = resource_find('data/logo/kivy-icon-32.png')
        copyfile(fn, source)
        event.clear()
        image.reload()
        self.wait_for_event_or_timeout(event)
        self.render(image, framecount=2)
        self.assertEqual(image.texture_size, [32, 32])
        remove(source)
        rmtree(temp_dir)
예제 #2
0
 def load_zipimage(self, source, frames):
     # load ZIP with images named: 000.png, 001.png, ...
     from kivy.uix.image import AsyncImage
     event = Event()
     image = AsyncImage(anim_delay=0.0333333333333333)
     # bind to 'on_load' because there are various
     # steps where the image is (re)loaded, but
     # the event is triggered only at the end
     image.bind(on_load=lambda *args, **kwargs: event.set())
     image.source = source
     self.wait_for_event_or_timeout(event)
     self.render(image)
     proxyimg = image._coreimage
     self.assertTrue(proxyimg.anim_available)
     self.assertEqual(len(proxyimg.image.textures), frames)
     return image