Kivy中打开.png文件的问题
我在尝试使用kivy.garden.mapview,显然这个功能还在开发中,但我在想问题可能出在kivy/core/image/img_pygame.py这个文件上。
请问kivy和pygame支持.png格式的图片吗?
-B
[DEBUG ] [ImagePygame ] Load <cache\osm_18_131070.5_131070.0.png>
[WARNING ] [Image ] Unable to load image <cache\osm_18_131070.5_131070.0.png>
[INFO ] [Base ] Leaving application in progress...
Traceback (most recent call last):
File "C:\Users\Brendan\Documents\oldfiles\ShorePark.py", line 306, in <module>
ShorePark().run()
File "C:\Python34\lib\site-packages\kivy\app.py", line 792, in run
runTouchApp()
File "C:\Python34\lib\site-packages\kivy\base.py", line 481, in runTouchApp
EventLoop.window.mainloop()
File "C:\Python34\lib\site-packages\kivy\core\window\window_pygame.py", line 381, in mainloop
self._mainloop()
File "C:\Python34\lib\site-packages\kivy\core\window\window_pygame.py", line 287, in _mainloop
EventLoop.idle()
File "C:\Python34\lib\site-packages\kivy\base.py", line 321, in idle
Clock.tick()
File "C:\Python34\lib\site-packages\kivy\clock.py", line 422, in tick
self._process_events()
File "C:\Python34\lib\site-packages\kivy\clock.py", line 537, in _process_events
if event.tick(self._last_tick) is False:
File "C:\Python34\lib\site-packages\kivy\clock.py", line 309, in tick
ret = callback(self._dt)
File "C:\Python34\lib\site-packages\gardenMapView\mapview\downloader.py", line 79, in _check_executor
callback(*args)
File "C:\Python34\lib\site-packages\gardenMapView\mapview\view.py", line 83, in set_source
self.source = cache_fn
File "instructions.pyx", line 337, in kivy.graphics.instructions.VertexInstruction.source.__set__ (kivy\graphics\instructions.c:6497)
File "context_instructions.pyx", line 360, in kivy.graphics.context_instructions.BindTexture.source.__set__ (kivy\graphics\context_instructions.c:7150)
File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 442, in __init__
self.filename = arg
File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 631, in _set_filename
mipmap=self._mipmap, nocache=self._nocache)
File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 371, in load
im = loader(filename, **kwargs)
File "C:\Python34\lib\site-packages\kivy\core\image\__init__.py", line 150, in __init__
self._data = self.load(filename)
File "C:\Python34\lib\site-packages\kivy\core\image\img_pygame.py", line 42, in load
im = pygame.image.load(filename)
pygame.error: Unsupported image format
补充:
我用了自己的Python版本,最后终于搞定了。
看起来问题出在mscv编译器在找vcvarsamd64.bat这个文件,但这个文件不存在。
我用了以下解决方案:在构建/安装Python 2.7的C模块时出现错误
然后我把所有的glew头文件和库文件复制到了合适的包含文件夹里,最后我成功用pip install kivy安装了kivy。
2 个回答
0
我发现我试图把 矢量 mbtiles 加载到 Mapview 中,但它不支持这种格式。它支持的是 栅格 mbtiles,比如这个链接中的文件:https://github.com/klokantech/vector-tiles-sample/releases/download/v1.0/countries-raster.mbtiles
0
png格式应该是可以正常支持的,我不太确定具体是什么问题。可能是pygame这个工具不支持png格式,或者你没有更好的工具来处理它,但这听起来不太可能。
你能运行一下mapview自带的示例吗?比如在它的github仓库的示例文件夹里有个叫simple_map.py的文件。