只获取图片的指定部分
写过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的;
当你被一个问题卡住,网上一搜全是一样的,关键写的文章内容还不在点上,这种感觉。。。相信很多人都体验过吧。
真正难的还得去扒拉管网,大家千万别因为百度不到就放弃,能够随意百度到的也不会让你愁。等自己学过用过后,再分享出来岂不是更好么!
浙公网安备 33010602011771号