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

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

奥特冷知识谁才是打败奥特曼最多的怪兽,这里有一份强者名单熟悉奥特曼历史的奥迷都知道,如果一个怪兽一生能够战胜一次奥特曼,那躺在怪兽坟墓里跟别人吹牛逼都有底气如果是一次打败2个奥特曼,基本就是光宗耀祖,留名青史了倘若是一个人打败了许许多多51位奥特曼被借力量次数,第一名不是初代,足足被借过10次大家都知道新生代的奥特曼最大的特点是什么呢?那就是借力量了!不管是现在的哪一位奥特曼都逃不了这个宿命!那你们平常老是说借债借债的,但是谁才是最大的债主你们真的知道吗?今天纪元哥就来新生代奥特曼最好看的5位女主,在化妆师的手下,只有她活了下来我相信所有的奥迷们除了关心每年新出来的奥特曼与人间体之外,还有一个事情也非常的关心,那就是每年新出来的女主们!毕竟漂亮的妹妹谁不喜欢呢!可是任凭妹子们再好看,那也扛不住圆谷的化妆师奥特曼中的5大奥特披风,连黑色的都有,在TV上完全没看过男孩子小时候都一定有一个梦想,那就是身着披风,成为打败怪兽的大英雄!尤其是这个披风,完全就是为了凸显高大帅气的存在,相信一定也有不少的男孩子在家偷偷披上一件对吧!但是你知道在奥特曼获得奥斯卡奖最多的动漫,猫和老鼠获奖的短片,分别是什么?如果说对于90后来说,最经典的动漫是哪一部,那猫和老鼠绝对占有一席之地!这部上世纪40年代创造的动画片,它其中的许多笑点即使放在现在也依然不过时!七次奥斯卡金像奖加上四次提名,猫和15位红色眼睛的奥特曼,全都是邪恶战士,只有一位是好人大家还记得我曾经盘点过一期奥特曼眼睛颜色的视频吗?我们曾经说过奥特曼的眼睛都有哪些!今天我们就着重聊一聊其中的红色眼睛!可以拥有红色眼睛的奥特曼,基本都是邪恶战士,但是也不是绝对的2021年中国汽车用品市场现状和发展前景分析市场规模或突破2万亿原标题2021年中国汽车用品市场现状和发展前景分析2026年市场规模或将突破2万亿组图行业主要上市公司德联集团(002666)大东方(600327)明新旭腾(605068)旷达科技干货!2021年中韩锂电池龙头企业对比韩国LG化学VS中国比亚迪原标题干货!2021年中韩锂电池龙头企业对比韩国LG化学VS中国比亚迪谁更胜一筹?行业主要上市公司目前国内锂电池行业的上市公司主要有宁德时代(300750)比亚迪(002594)国行业深度洞察2021中国风力发电行业竞争格局及市场份额分析原标题行业深度洞察2021中国风力发电行业竞争格局及市场份额(附区域集中度企业竞争力评价等)行业主要上市公司金风科技(002202)明阳智能(601615)上海电气(601727)2021年全球动力锂电池行业市场供需现状及发展趋势分析动力锂电池行业主要上市公司目前国内动力锂电池行业的上市公司主要有宁德时代(300750)比亚迪(002594)孚能科技(688567)亿纬锂能(300014)国轩高科(002074最全2021年中国床垫行业上市公司全方位对比分析原标题最全2021年中国床垫行业上市公司全方位对比(附业务布局汇总业绩对比业务规划等)床垫行业上市公司自然科技(834927)伦嘉科技(838633)丝里伯(835910)中健国康
航海题材游戏灵感多来自这,光荣大航海时代的前世今生游戏行业的飞速发展,迫使游戏公司将制作游戏视角的视角更加发散多元,这几年尤其突出,动辄宇宙外太空屡见不鲜,质量也是层层加码,宛如电影大片,而游戏中航海题材也是受玩家喜爱的一个重要题开发人员开发出毁灭战士小游戏趣味验证码据外媒报道,我们大多数人都知道,面对一个验证码的感觉是如此令人恼火,以至于我们很多时候会选择关闭页面。如果这些将机器人跟人类分开的测试不涉及破译模糊的单词或选择包含公共汽车消防栓标RNG重回王座,LPL永不言弃文丨竞核利剑出鞘,荣光加冕,我们是冠军!北京时间5月24日凌晨,在雷克雅未克极光映照的夜晚下起一阵绿色的雨。RNG经过5轮鏖战最后以32战胜2020年英雄联盟全球总决赛冠军(以下简吕布的形象是如何从战神转变成萝莉的?作者戈德温男爵图片排版校对循迹小编全文约5200字,大约需要15分钟。更多有意思的音视频,请订阅循迹晓讲循迹讲堂微信公众号,在iOSAppStore或各大安卓应用市场搜索循迹讲堂,牧场物语橄榄镇与希望的大地1。0。5版更新资料现已推送Switch牧场物语橄榄镇与希望的大地1。0。5版更新资料现已推送,更新内容如下各类机械功能调整,便利性大幅提升,所有机械可连续制作同一道具最多10次,玩家能立即获取已经制作完成的王者荣耀惩戒诸葛有多香?玩家6天打上国服,王者对局直接起飞王者荣耀随着时间的不断流逝,赛季不断地更新,游戏中很多英雄和道具也发生了变化,不同的赛季不同的强势英雄崛起。对于玩家来说,英雄的玩法是非常多样的,每位玩家对于英雄的理解不同,打法和为什么Steam删除70GB的游戏只用了1秒?Steam的老玩家应该都注意到了一个细节游戏安装通常比较慢,但卸载游戏就是几秒钟的功夫,这到底是怎么回事呢?举个例子,以3年前的网络速度,在Steam上安装72GB的GTA5可能要最终幻想14成国外第一网游?活跃玩家242万,比魔兽世界还高最终幻想这一IP想必大家都不会感到陌生。该作是由日本大厂SE开发的一款角色扮演游戏,其旗下还有如尼尔古墓丽影勇者斗恶龙等经典IP。而不久前据国外第三方游戏数据统计公司公布的各大网游传奇世界元神版复古传世怀旧版,传世带元神为什么玩家钟爱元神哈喽,小伙伴们好,我是春来。我相信在座的各位都知道,传奇世界这个id现已有十几个年头了,与传奇同台能够称作中国网游的鼻祖!伴随着新时代的发展趋势,众多网游现已慢慢地演化为手游了,传死亡循环Deathloop最优秀的一点,就是超出了我对它的预期文丨电脑玩家布雷泽bigfun社区前言译自PCGamesN上的文章。Deathloop继承了Arkane工作室的传统,同时也有着很多新奇的设计理念在死亡循环于E32019展会亮相之畅游外域无负担!理性看待怀旧服TBC数字典藏包魔兽世界怀旧服新资料片燃烧的远征将于6月2日正式上线,与之一同到来的不仅有各种暴雪对于昔年TBC设计不合理之处的修改,同时还有一些能帮助玩家快速在游戏中开始冒险的典藏礼包,不过对于