python用七巧板图片画个图_画一个太大而不能放进一个七巧板的图像

您可能不想一次显示多个QImage的数据。很少有屏幕的宽度或高度超过32k像素。在

因此,您需要一个抽象类型,它可以在请求读取时生成QImages,可以是偏移量,也可以是不同的缩放因子。在

下一个问题是修改这个抽象类型。一个易于使用,但性能不是最高的版本包括让用户快速地将QImage插入您的内部存储器(无论是什么)。在

用户仍然需要“平铺”他们的努力,但可以平铺他们的努力,以方便他们。在

一个更高性能的版本会公开一些我们还没有提到的底层实现。在

大图像的传统实现是平铺图像。你有一个互相邻接的图像块网格。当有人从您的图像中请求一个blit时,您将生成一个临时的QImage,并将适当的分片blit到它上面。当有人向您发送消息时,您会找出合适的分片是什么,并将源代码的一部分QImage写在它们的部分上。在

更高性能的接口会暴露这些磁贴。在

一个低层次的接口让外部知道你的瓷砖在哪里,并让他们要求他们。这是一个糟糕的界面。在

更好的接口公开了子平铺迭代器。它们请求一个区域,然后返回一对描述该区域的迭代器。迭代器中的数据包括平铺和该分幅中的区域,以及该区域在“完整图像”中的位置,或者包含子分幅对象(具有行距、行长度等)和子分幅对象的位置。在

另一个好的接口是foreach样式的接口。同样,big image类的用户在一个他们想要处理的区域中传递,但是也传递了一个回调。该回调类似于上述迭代器取消引用的结果之一。在

与迭代器方法相比,这种方法有两大优点。首先,可以在大型图像类中实现并行图像处理算法。第二,它比滚动自己的迭代器容易得多。在

一旦你有了这些,绘图就相对容易了。确定你正在绘制的区域(要慷慨)。迭代生成的分片。在每个平铺上,在将平铺的偏移应用于图形后绘制。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值