只获取图片的指定部分

写过css的人可能知道 background position,平时很少用到,但有些场景必需要用。比如我下面做的这个应用;

天气app:从气象网抓取数据后通过Pyqt5来显示。数据部分都没问题,问题在于图标,自己找很难找到合适的套图,那就直接从气象网上扒吧;

问题来了,图标都集中在一张大图上(点我查看),这时要怎么处理呢?如果是css那很好办,用上面说的 background position就行了;

因为网上很难查这种问题,所以我之前用了一种笨办法,自己切图!切了两个就不想切了,累啊,于是上qt管网翻找,终于找到方案,这里丢出部分代码供大家参考一下:

    def analysisWindImage(self, wind):
        start_y = int(self.conf.get(
            'image_wind', wind))
        return self.source_img_wind.copy(
            198, start_y, self.wind_image_width, self.wind_image_height)

核心是 QPixmap 的 copy 方法,传入坐标 & 大小就可以拷贝指定区域的图片了;

为直观些,把部分配置也贴出来看下,配置分两种方式来配置位置:

一种是非常清楚图片尺寸的,直接存index即可,程序里面运算一下就得出位置了;

另一种是尺寸不明确的,那就存坐标;(上面代码就是这种)

[image_weather]
imageName=white80.png
imageSize=80,80
nightIndex=4=0,0
多云=0,1=0,2
阵雨=0,3
雷阵雨=0,4
小雨=0,7
中雨=0,8=0,8
大雨=1,0
暴雨=1,1
[image_wind]
imageName=iconall.png
imageSize=24,24
无持续风向=8
南风=26
北风=51
东风=76
西风=97
东南风=120
西南风=142
东北风=169
西北风=193

上两截图~

 

第一张的三张背影都是动图(gif),效果还是不错滴~

第二张是根据空气质量等级来改变的背景颜色;

 

最后,说下现在网上的帖子吧,太多无脑抄,一个写烂全部拷烂;我并不反对抄,但也不要全抄,要懂、要有自己的理解,然后想想怎么样才能更简单、易理解的表达出来,这时你再发出来,绝对是很OK的;

当你被一个问题卡住,网上一搜全是一样的,关键写的文章内容还不在点上,这种感觉。。。相信很多人都体验过吧。

真正难的还得去扒拉管网,大家千万别因为百度不到就放弃,能够随意百度到的也不会让你愁。等自己学过用过后,再分享出来岂不是更好么!