范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python完成英雄联盟原话千图成像,这也太酷了

  千图成像 :用N张图片拼凑成一张图片。
  实现原理 :先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块。
  图库中的图片处理 :标记图库中每张图片的混合颜色,用于替换目标色块,并记录每张图片的特征用于成像,增加成像质量。 0,起源
  德莱文
  图片局部
  英雄联盟-微博
  很久前在刷微博的时候看到了这条,被他给震撼到了,图片是由LOL近千张皮肤图片组合构成的(难道这是用ps做的,还是一张张拼的,应该不可能吧),就在昨天突然就想起了这个事,就决定也做一个,随即便展开了行动。搜到了这篇文章,看了下图片的构成,决定先取得所有皮肤的图片再说吧!便又开始了 爬虫 !
  运行环境:Python3.6.5 , pycharm-2018-1-2 , win10
  愣着干嘛,快往下看 1.爬虫思路皮肤图片的来源问题,首先到官网去找了找,想到了道聚城皮肤专卖区,其中正好有所有我们需要的图片。
  皮肤图片来源 通过F12锁定图片取得了第一张图片的URL,(https://game.gtimg.cn/images/daoju/app/lol/medium/2-122015-9.jpg)
  取得URL 以此类推便可取得多个皮肤的URL,发现只有图中红框处不同
  URLS 尝试这改变红框内的数字( 玄学 ),在改变后三位(122015-->122001)时,获得了另一张诺手的皮肤,基本可以确定后三位为 皮肤编号 ,前面的数字为 英雄编号 ,且皮肤编号必须为三位,这一步得感谢这位博主,让我更加确定了这个规律的可行性。(这一步花了好久) 看到这里你可能会有所疑问,为什么不直接正则获取所需图片的URL呢?为什么要大费周章的寻找规律?因为这个翻页式网站比较特殊,在翻页时URL并不会改变,所以无法通过常用方法获取所有皮肤,那估计又有人要提出使用 selenium 库来模拟人使用浏览器获取所有图片,但是这会造成爬取图片的速度大大下降,只能作为下策(在这过程中了解到了八爪鱼,发现其原理类似于selenium,是模拟人操控浏览器,速度也是不容直视,虽然它能爬取近98%的网站),在博主能力有限的情况下选择了寻找规律之旅!
  如果你有好的方法解决这个问题,可以在评论处提出,十分感谢!接下来在知道了规律的情况下,那么如何获取每个不同英雄的编号呢?在其他博主的引导下,发现LoL资料库中有所有英雄的头像,通过F12的慢慢查找,发现了这个js文件!
  Network
  查看其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 requests import re import 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.com/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_list  def 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_list  def 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://www.jianshu.com/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实现这个软件的功能…………
  如发现错误或看不懂的地方,可在评论区提出,大家一起交流!
  如果文章对您有帮助,点赞+关注,您的支持是我最大的动力

传奇中的故事有很多很多,今天小编为大家讲讲今天有小编小先生为大家讲讲传奇中法玛大陆的那些事,法玛大陆神龙帝国地处玛法大陆的北端,直面无边的大洋。这是一个人口达到一百七十万的大帝国,在这块土地上,人类已经发展出灿烂的文明。因侠盗猎车手人物解说艾迪普拉斯基对圣安德烈亚斯不熟悉的一些伙伴听到这个名字可能会有点陌生。首先,加号键是汤普森的狗和胖狗,是白胖子。今天,我们来谈谈圣安德烈亚斯的第二大腐败警察埃迪普拉斯基。普拉斯基的第一次出场是福利来袭丨纵使你有十八般武艺,又能奈我何?那么今天我们就来到功夫世界第15天听说这里的僵尸都有武艺傍身?咱可不怕你!这一关的闯关条件需要保护好处于危险状态的向日葵它们分别在一三五行所以在刚开始布局的时候我们要侧重这三路来看宝可梦的魅力,宝可梦晶灿钻石明亮珍珠冷饭炒出新高度全球最大游戏IP之一宝可梦,发布宝可梦珍珠钻石复刻版宝可梦晶灿钻石明亮珍珠上线NS平台。宝可梦晶灿钻石明亮珍珠一周卖出600W份,宝可梦的魅力宝可梦粉丝们一边嚷嚷着复刻没诚意,行动植物大战僵尸四每日日记第1个我变了一个新的世界,就是秋天大战是在秋天里举行的一个植物大战僵尸地点会刮落叶,第1个僵尸是秋天僵尸。他穿着一个米奇的蓝色衣服,有点破破烂烂。虽然破破烂烂,但是还是可以穿着打针永劫无间初识教学,新手必须知道的基本知识永劫无间出了快半年了,小编我还在白银和黄金之间左右摇摆。最近玩的时候遇到一些小白,给我贡献了还不错的战绩。虽然觉得欺负新人有些于心不忍但下手的时候依然没有犹豫。这不,最终还是没有经手游剑与远征新模式哪好玩?乱时之境看这一篇你就懂了乱时之境终于上线啦!抠门这就讲讲新模式有哪些好玩的东西,千万别错过哦。新玩法讲解首先,你可以看到乱时之境的主界面如上图。目前已开放的功能,分为乱时之境时砂泉水和洄时之楔三大部分。其旧梦呼吸离队,WE3。0还未开始就已经结束2021年初,随着Breathe加入WE,这支拥有鲜红颜色代表西安的队伍终于迎来了WE3。0时代最强阵容,而这也意味着2021年或许是这套阵容最后的机会,2021年的每个阶段,WE各大手游纷纷发放福利的原因本文通过解析游戏方和玩家的行为,为读者参透隐藏在一串串数字后面的游戏福利的本质。现代社会,日新月异,很多旧词会被赋予新的含义,但往往脱不开词语背后的逻辑关系。我们先从福利这个词语的国服神锋top10!实况足球手游11月胜率最高的十大中锋盘点国服近期公布的中锋排名,又是一波换血。上月胜率前三的神锋,本月只剩下时刻迭戈弗兰一人坚守,取而代之的是风光无限的拉纳尔多,以及比肩传奇的百分精选姆巴佩。以下,笔者就为大家带来国服最涩气?艺术!香草社的这几款宝藏游戏能上NS吗?在上个月的十三机兵防卫圈2周年直播中,本作突然宣布将会登陆NS平台,这让许多玩过本作,或是久仰大名的玩家激动不已。本作自发售以来,一直都是PS4独占游戏,并且几乎所有玩过的玩家对它
传奇3怀旧手游热血重燃,传奇3经典之作哈咯,大家好!今天给大家带来的是传奇3怀旧手游,可以说这款传奇3怀旧是2021当下最火之一的传奇手游系列!传奇3怀旧传承老端游传奇3精髓,传奇特色,热血开服中!11还原经典端游传奇三国杀九游版三国杀九游版是一款集角色扮演战斗伪装等要素于一体的多人卡牌游戏,是风靡中国的智力游戏,玩家在游戏中可以扮演三国时期的著名人物,根据随机抽取的隐藏身份,如主公反贼忠诚内奸等,使用独特dnf12月30日新增活动有哪些商城活动福袋扭蛋机和以往一样,本次推出了跨年版的新春福袋礼包,具体内容还不知道,不过总体是有6个道具,每购买3个6个还会有额外的奖励赠送。按照以往惯例来说,福袋内容大多是随机增幅券对抗路新王诞生,巅峰都在用,专治典韦,完克司马懿在王者荣耀中,对抗路的英雄发挥着重要的作用。在以前的版本中,对抗路英雄前期基本都是单机游戏,随着传送机制的出现,对抗路英雄的参团时间被明显提前,参团率也是大幅度提升。对抗路不再是单幻塔超电磁双枪解析非常值得培养的输出武器幻塔前期比较好用的输出武器是幻塔超电磁双枪,幻塔超电磁双枪具有10。7的充能系数,但是主要还是作为输出武器来使用,当有更高星级的双刃等武器后也可以作为充能武器用。幻塔超电磁双枪介绍龙途天下夺城战怎么玩纵横征途夺城战能获得哪些奖励大家好,今天小编给大家介绍一下龙途天下手游中夺城战的玩法介绍,还不是很了解的小伙伴就和小编一起看下去吧!希望能给大家带来帮助!夺城战规则开服时间开服第3日及每周三20002040报一梦江湖法外狂徒张三惊现金陵?这叫紧急避险最近就连南方开始陆陆续续下起了大雪,让人不禁感慨,冬天真的来了。其实对于一梦江湖(原楚留香手游)的玩家来说,自从开启了祥冬至活动,就已经可以感受到冬天的气息了。而今年的祥冬至活动也屠龙破晓手游屠龙破晓是一款经典传奇类MMOARPG手游,场景采取了顶级的渲染和写实的画风,加上复古的2。5D风格,犹如身临其境之感,还拥有经典的职业角色设定,战士法师道士任你选择,任何一个职业幻塔打完元帅了,讲点pvp和游戏看法作者NGA默舞丶本文共分为三部分,第一部分配装和匹配机制,第二部分手法,第三部分实操细节。可能啰嗦一点,但是看完这篇攻略不说你保送元帅,实操一下练练打个将星(元帅之前的第二个段位,在回合制游戏中居然还能打雪仗?梦幻新诛仙带你重温童年趣味又到了一年年末之际,每逢这个时节各大游戏厂商都会开始发力,推出各种各样冬日主题活动与玩法,来为游戏增添乐趣。就比如说梦幻新诛仙在前段时间中推出的冰雪节主题活动,它就为玩家们带来了堆游戏真的就像长辈说的一无是处吗最初接触的游戏就是CS1。6反恐精英,那个时候家里没有电脑凑够几元钱去网吧一玩就是一小天,相信很多朋友都干过这种事吧呲牙那个时候玩游戏我只会感觉快乐,刺激,和三俩朋友一起研究战术冲