Python 的高效图像缩略图控制?
对于 Python GUI 应用程序显示大量缩略图(例如 10000 个或更多)的最佳选择是什么? 出于性能原因,此类缩略图控件必须支持虚拟项目,即仅请求应用程序当前对用户可见的那些缩略图。
What is the best choice for a Python GUI application to display large number of thumbnails, e.g. 10000 or more? For performance reasons such thumbnail control must support virtual items, i.e. request application for those thumbnails only which are currently visible to user.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 wxPython 中,您可以使用 wxGrid 为此,因为它支持虚拟模式和自定义单元格渲染器。
这是您必须为 wxGrid“数据提供者”实现的最小接口:
这是您必须为 wxGrid 单元格渲染器实现的最小接口:
您可以在 wxPython 文档和演示中找到使用这些类的工作示例,它称为 Grid_MegaExample。
In wxPython you can use wxGrid for this as it supports virtual mode and custom cell renderers.
This is the minimal interface you have to implement for a wxGrid "data provider":
This is the minimal interface you have to implement for a wxGrid cell renderer:
You can find a working example that utilizes these classes in wxPython docs and demos, it's called Grid_MegaExample.
如果您必须自己编写缩略图,我过去使用 Python 图像库创建缩略图已经取得了很好的结果。
http://www.pythonware.com/products/pil/
If you had to resort to writing your own, I've had good results using the Python Imaging Library to create thumbnails in the past.
http://www.pythonware.com/products/pil/
只是为了完整性:有一个用wxPython编写的thumbnailCtrl,这可能是一个很好的起点。
Just for completeness: there is a thumbnailCtrl written in/for wxPython, which might be a good starting point.