正文
千图成像:用N张图片拼凑成一张图片。实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块。图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录每张图片的特征用于成像,增加成像质量。
0,起源
\德莱文

图片局部

英雄联盟-微博
很久前在刷微博的时候看到了这条,被他给震撼到了,图片是由LOL近千张皮肤图片组合构成的(难道这是用ps做的,还是一张张拼的,应该不可能吧),就在昨天突然就想起了这个事,就决定也做一个,随即便展开了行动。搜到了这篇文章,看了下图片的构成,决定先取得所有皮肤的图片再说吧!便又开始了爬虫!
运行环境:Python3.6.5 , pycharm-2018-1-2 , win10

愣着干嘛,快往下看
1.爬虫思路皮肤图片的来源问题,首先到官网去找了找,想到了道聚城皮肤专卖区,其中正好有所有我们需要的图片。



查看其preview,便可得到所有英雄编号,并测试发现可用!比如Ashe艾希的第一个皮肤对应编号按规律应该是22001,所以URL就是https://game.gtimg.cn/images/daoju/app/lol/medium/2-22001-9.jpg,测试发现确实成功了!

preview
好了,到此为止网页分析到此结束了,终于可以编写代码了!*2,代码框架1,获取英雄编号及皮肤编号(说明:关于皮肤编号并未找到每个英雄皮肤的数量,所以设置成查找所有001到015的图片,当然也可以更多020也行)2,将编号导入图片URL(https://game.gtimg.cn/images/daoju/app/lol/medium/2-******-9.jpg)中,生成Url\_list。3,根据URL来下载对应图片,并保存到本地。*3,完整代码import requestsimport reimport os# # # # # # # # # # # # # ## title:获取LOL英雄皮肤图像 ## author:简书 Wayne_Dream ## date:2018-7-5 ## 转载请注明出处!!! ## # # # # # # # # # # # # #def getHero_data(): try: headers = { 'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } url = 'http://lol.qq /biz/hero/champion.js' r = requests.get(url, headers=headers) r.raise_for_status() r.encoding = r.apparent_encoding text = r.text hero_id = re.findall(r'"id":"(.*?)","key"', text) hero_num = re.findall(r'"key":"(.*?)"', text) return hero_id, hero_num except: return '卧槽,获取英雄编码失败!'def getUrl(hero_num): part1 = 'https://game.gtimg.cn/images/daoju/app/lol/medium/2-' part3 = '-9.jpg' skin_num = [] Url_list = [] for i in range(1, 21): i = str(i) if len(i) == 1: i = '00'+i elif len(i) == 2: i = '0'+i else: continue skin_num.append(i) for hn in hero_num: for sn in skin_num: part2 = hn + sn url = part1 + part2 + part3 Url_list.append(url) print('图片URL获取成功') return Url_listdef PicName(hero_id, path): pic_name_list = [] for id in hero_id: for i in range(1, 21): pic_name = path + id + str(i) + '.jpg' pic_name_list.append(pic_name) return pic_name_listdef DownloadPic(pic_name_list, Url_list): count = 0 n = len(Url_list) try: for i in range(n): headers = { 'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } res = requests.get(Url_list[i], headers=headers).content if len(res) 100: count += 1 print('\r当前进度:{:.2f}%'.format(100*(count/n)), end='') else: with open(pic_name_list[i], "wb") as f: f.write(res) count += 1 print('\r当前进度:{:.2f}%'.format(100*(count/n)), end='') except: return '卧槽,获取图片失败!'if __name__ == '__main__': print('author:简书 Wayne_Dream:') print('https://jianshu /u/6dd4484b4741') input('请输入任意字符开始爬虫:') if os.path.exists('D:\LOLimg_wayne\\') == False: path = r'D:\LOLimg_wayne\\' os.mkdir(path) hero_id, hero_num = getHero_data() Url_list = getUrl(hero_num) pic_name_list = PicName(hero_id, path) print('正在下载图片,请稍等。。。') print('在' + path + '下查看...') DownloadPic(pic_name_list, Url_list) print('图片下载完毕') else: path = r'D:\LOLimg_wayne\\' hero_id, hero_num = getHero_data() Url_list = getUrl(hero_num) pic_name_list = PicName(hero_id, path) print('正在下载图片,请稍等。。。') print('在' + path + '下查看...') DownloadPic(pic_name_list, Url_list) print('图片下载完毕')代码写的比较丑,如有看不懂的部分可在评论区提出,我会秒回你的!/认真脸
好了,到这里我们已经完成了LOL全皮肤的获取,接下来进行最有意思的一步,千图成像!(文末有我爬取到的皮肤图集百度网盘地址)
4,初级阶段我们先使用一款国外的合成软件软件下载地址
如果打不开,那就搜索“foto-mosaik-edda”下载即可!
Windows用户请选这个
打开后界面是这样的。

第一步创建图库
先选第一步

1.1

1.2

等待一会儿
再选第二步create photo mosaic

2.1

2.2

2.3

2.4

2.5,弹出警告点确认

效果图

局部
有时间再分享如何用python实现这个软件的功能…………如发现错误或看不懂的地方,可在评论区提出,大家一起交流!
本文TAG:道聚城英雄联盟
- 上一篇: fifa14_fifa14吧
- 下一篇: 葫芦娃小游戏(葫芦娃冲冲冲)
猜你喜欢
- 2021-02-18道聚城英雄联盟_游戏分商城参与道聚城活动
- 最近发表
- 标签列表
-
- 传奇手游 (5)
- 冰雪传奇手游 (3)
- 合击传奇手游 (6)
- 单职业传奇 (11)
- 复古传奇 (42)
- 合击传奇 (107)
- 火龙传奇 (7)
- 合击 (34)
- 沉默 (2)
- 大极品传奇 (8)
- 复古传奇手游 (16)
- 神途手游 (2)
- 1.80火龙 (2)
- 三职业传奇 (85)
- 1.80 (224)
- 1.76 (101)
- 1.85 (58)
- 三职业 (22)
- 火龙 (65)
- 复古 (92)
- 微变 (20)
- 战神 (12)
- 单职业 (5)
- 金币 (13)
- 1.82 (9)
- 微变版本 (2)
- 大极品 (4)
- 复古小极品 (3)
- 微变传奇 (10)
- 战神传奇 (2)
- 变态 (9)
- 1.79 (7)
- 1.95 (47)
- 1.70 (4)
- 小极品传奇 (3)
- 1.78 (3)
- 暗黑 (2)
- 1.80-85 (2)
- 三职业传奇手游 (19)
- 微变传奇手游 (7)
- 火龙传奇手游 (10)
- 迷失传奇手游 (5)
- 无限刀传奇手游 (27)
- 专属传奇手游 (7)
- 单职业传奇手游 (11)
- 宠物传奇手游 (2)
- 金币传奇手游 (2)
- 沉默传奇手游 (3)
- 神器传奇手游 (8)
- 单职业传说手游 (2)