专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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实现这个软件的功能…………
  如发现错误或看不懂的地方,可在评论区提出,大家一起交流!
  如果文章对您有帮助,点赞+关注,您的支持是我最大的动力

中华一番客栈MAC苹果电脑游戏繁体中文版支援10。1310。1410。151112中华一番客栈MAC苹果电脑游戏繁体中文版支援10。1310。1410。151112适用于APPLECPU游戏编号353游戏类型模拟经营游戏大小0。40Gb支持系统macOS10。1FF像素重制版领衔!盘点2021年出色的重制版游戏游戏的历史越长,重制版作品也就越多。2021年已经走到尾声,回望这一年也有众多经典游戏作品的重制版推出,近日日媒gamespark就盘点了11部2021年发售的出色的重制版游戏作品冒险岛老玩家的25条经典回忆满满回忆1玩废弃组队,到医院那门那喜欢不停的弹2不管多高及路过射手训练场都得发几个技能秀给打蜗牛的新手看3看见村子里一些穿着华丽的人坐一起聊天自己也忍不住搬椅子坐旁边4天空船上船以后没开时原神2。4版本飞彩镌流年角色up抽取建议这个2。3我是一刻也待不下去了,估计这是大家看完2。4版本前瞻后的最能表达自己内心的一句话了吧。新角色武器,新角色时装,新地图再加上复刻和一堆活动2。4的内容量算是非常巨大了,接下原神2。4角色武器池,双枪同池稳了,七七被夺传说任务?2。4节奏图大家好,这里是玩咖冰洛,这里带给大家最新游戏信息。一2。4的上半场角色池和武器池根据内鬼lumie的信息,上半场的角色池为申鹤和魈平行,四星为重云云堇凝光武器池果真是两个长枪息灾和魔兽世界希女王被联盟接纳,双阵营友善,成为完全中立的角色魔兽世界贯穿三个资料片的角色不多,能在几个大版本里面保持活跃的NPC,而且还是剧情焦点的主要角色,只有希尔瓦娜斯!现在暗影界的希女王剧情终于接近尾声,编剧数次强调希尔瓦娜斯不会是小王者荣耀S25赛季末还不会用苍穹,那么你将错过最后的上分机会哈喽大家好,我是铃铛儿在王者荣耀这款游戏里,射手是非常受欢迎的一个位置,而经常玩射手的玩家,肯定就知道电刀这件装备,特别是中低段位的玩家,几乎不管玩什么射手,都要首出电刀,觉得这样真爆冷门!王者荣耀KPI杯虎牙队刘氏家族战队成功出线周四的时候,我就说,这次王者荣耀KPI杯虽然高手云集,但说不定A组的不爱甜珂是笨蛋队会爆冷,这样就更有看点了!结果我猜中开头,没猜对结局。23日,王者荣耀KPI杯开启,A组的分组是娱乐闯关手游蛋仔派对有多上头?玩家多人滚蛋运动有点意思在当下快节奏的时代,很多人玩游戏更注重游戏的休闲性和趣味性,因此休闲类游戏备受玩家青睐。12月24日一款闯关竞技游戏蛋仔派对开启了计费删档限号测试,Q萌形象趣味玩法秒获玩家喜爱,成热血传奇176复古,老玩家心中最经典最难忘的版本传奇至今已经20多年了,在这期间有着很多版本,但要说哪个版本最经典,可能所有玩家都会选择1。76版,为什么1。76版有那么多人喜爱,下面就跟随小编来看看,传奇1。76版到底有何魅力三国志孔明传,电脑版的可以救关羽吗?很多玩家都有这样的疑问三国志孔明传有多个版本,曾经分别登录过PCPSSSGBA。虽然是同一个公司发行的,但每个平台的游戏内容还是存在一定的差异,其他平台的小编没有玩过(之前在PSP上下载过一个,但没有玩
铠凉了猴子凉了马超凉了,天美这刀削得狠!这个英雄却崛起了S15赛季马上更新,体验服的调整也在紧锣密鼓地进行。而4月3号的体验服调整,不光对英雄进行了调整,还对一件以前从来没有调整过的装备动了刀子!下面且听老王一一给大家分析。一英雄调整1刺激战场4月3号光子公布的新衣服如何获得?还有哪些永久服饰?感谢邀请,我是梧桐,还望多多关注众所周知刺激战场国服中虽然有不少的时装,但是在精美程度和稀有度上和刺激战场国际服是没有可比性的,这主要是因为国服还未开通充值渠道,所以光子也是在等版王者钻石局又连跪了,我把把MVP,但是带不动队友,我该怎么办?大家好,我是清分很高兴能回答你这个问题。针对王者荣耀钻石局又连跪了带不动怎么办?我所认为的观点首先的钻石局是一个很神奇的段位。因为大多数玩家他们的最低技术就是钻石,也就是说他们能跟CSGO饭制鱿鱼游戏特别地图6大游戏一一重现随着网飞韩剧鱿鱼游戏的爆火,各种联动纷沓至来,近日有高玩在CSGO打造了鱿鱼游戏联动特别地图,原作中的6大游戏一一重现,一起了解下。CSGO饭制鱿鱼游戏特别地图分别还原了原作的一二美国网红真实鱿鱼游戏收官幸运获胜玩家收获近50万美金如此曾热度还真的可行,拥有近8000万粉丝订阅的美国网红主播MrBeast花费近400万美元打造了真实版鱿鱼游戏日前正式收官,456名玩家中,最后的大赢家79号赢得了最大奖45万6DNF强袭模式不仅出材料,还能掉落价值6000W的卡片,你们去刷强势模式吗?95版本可以说是对平民玩家最友好的版本,因为95级的史诗套可以随便做,95史诗套的制作地图有三种,断头谷跟强袭模式做传说,黎明裂缝做史诗,对于强袭模式来说,这是大家做传说装备的必刷冰雪传世隐藏的地图能提高等级大家好我是干拉,今天也是跟大家来聊一下升级的事情,毕竟等级高了玩起来才好玩嘛升级难?确实,当年传奇升级对于很多玩家是一个头疼的事,每天挂机打怪就是要提升等级,但这之中会遇到风险,在6月皮肤优化列表公布,李逍遥皮肤3号上线,免费获取活动不要错过大家好,我是咩师兄。6月已经到来,王者荣耀将开启新一轮的皮肤计划,这不仅包括老皮肤的优化,还包括新皮肤的上线,下面一起来看下6月的皮肤资讯。1孙尚香水果甜心优化沟通6月28日,王者虞姬预警提醒取消?首款联名地图要来了,官方暗示李逍遥是传说爱生活,爱游戏,大家好,我是阿呆。期待大家的关注,我会在这里分享更多有趣的最新资讯。前言在最近一段时间里,王者荣耀体验服迎来了大量的更新,同时官方还宣布了多款联名皮肤,比如前段时间荒野大镖客2每日任务更新攻略2021年6月2日常规任务1在自由模式活动中用投掷武器杀死的玩家03左上角发出的活动邀请,加入一次用飞刀斧子炸药燃烧瓶等杀死3次玩家即可2在自由模式活动中用弓箭爆头杀死的玩家01左上角发出的活动邀请LOL最新全球战力榜出炉RNG力压DK排名第一,前十LPL六队上榜英雄联盟赛事官方在不久前公布了LPL夏季赛将于6月7日正式拉开帷幕,这让休赛期倍感无趣的观众,在不久后终于可以再次观看精彩的比赛。而在MSI结束后夏季赛即将开打前,LOL全球战队排
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软件