我需要制作一个基本的图像查看器.主要关注的是如何实现(在gui组件和图像处理方面)诸如放大,滚动和"手动工具"等功能.
实现这一目标似乎有几种选择,主要区别在于对图形界面框架的责任程度,而不是手动实施.
对我来说两个明显的解决方案是:
1)调整和裁剪图像的可见部分是使用某些图像处理库的功能自行制作的.然后在重写的onPaint()方法中的某个窗口/控件上绘制图像(或它的部分).需要编写滚动条更新(使用'手工工具'时)和操作(直接使用时)代码.
2)包含图像的超大控件(StaticBitmap或其他)放在具有自动滚动的窗口内.然后需要弄清楚如何将图像坐标转换为滚动坐标.
两种方式看起来都很尴尬.任何想法如何以一个整洁的方式做到这一点?或者是我觉得丑陋只是唯一的出路?
我正在使用Python与wxPython/wxWidgets和PIL,但问题在很大程度上是语言和平台无关的.
欢迎使用示例代码和源代码链接(不太臃肿的东西).
这是一个可能有用的教程. 构建一个wxPython图像查看器
我实际上没有看过所有的视频,所以我不能说它解决你的具体问题有多好.
此外,这是Jeff Atwood关于Coding Horror的博客文章,可以申请.编程很难,我们去购物吧! 它说明了何时应该花时间编写自己的代码以及何时只使用第三方解决方案.