前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >送给所有粉丝的新年礼物--粉丝画像

送给所有粉丝的新年礼物--粉丝画像

作者头像
大家一起学编程
发布2022-01-25 18:37:04
3700
发布2022-01-25 18:37:04
举报
文章被收录于专栏:大家一起学编程

人生总是会有迷茫,会有不知所错,会有一种不可言说的心情。那是一种非常奇妙的感觉,但是那会非常的不舒服。这一年来,我在不断思考着我能做什么,我可以做什么,我如果没有工作了会怎么样。我还剩下什么?

今年,我的粉丝第一次突破5000,我很高兴,工作之后的乐趣,就是写写文章,写写代码。让更多的人能了解到编程的乐趣,也是一件不错的事情。

我更新的频率没有那么准时,也没有很频繁。同时,这也使我对自己产生怀疑。我的写作是否有意义,我是否能帮助到大家。我的方向是什么?

然后就在这种不断的自我内耗中,感觉整个人越来越坏。

一次翻看短视频的机会,我被点醒了,那句话让 我印象深刻:成功,不成功,失败,不失败,你总是患得患失,太在意昨天,又太担心将来,昨天已经成为历史,将来是一个谜团,今天,是上天赐给我们的礼物,像珍惜礼物那样珍惜今天。

是呀,这么简单的一个道理,只有亲身经历,才知道,我们连一些简单的道理都还在处于不断循环中,不如珍惜当下,过好每一天,去面对那么多可爱的人,可爱的事,为生活增添一点乐趣。

今天,我送给粉丝朋友们一副画,这副画是由所有粉丝的头像构成的。是你们让我有了创作的热情,未来,我们也会一起。

代码语言:javascript
复制
第一步:获取粉丝列表头像 
import requests
import os


def get_fs_img(page,id):
  """获取图片链接,名称"""
  headers = {
    'Accept':'application/json, text/plain, */*',
    'Accept-Encoding':'gzip, deflate, br',
    'Accept-Language':'zh-CN,zh;q=0.9',
    'Connection':'keep-alive',
    'Host':'blog.csdn.net',
    'Origin':'https://djyqxbc-python.blog.csdn.net',
    'Referer':'https://djyqxbc-python.blog.csdn.net/?type=sub&subType=fans',
    'sec-ch-ua':'" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
    'sec-ch-ua-mobile':'?0',
    'sec-ch-ua-platform':'"Windows"',
    'Sec-Fetch-Dest':'empty',
    'Sec-Fetch-Mode':'cors',
    'Sec-Fetch-Site':'same-site',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
  }
  reponses=requests.get("https://blog.csdn.net/community/home-api/v2/get-fans-list?page="+str(page)+"&pageSize=500&id="+str(id)+"&noMore=false&blogUsername=qq_39046854",headers=headers)
  fs_list=reponses.json()["data"]["list"]
  for n,i in enumerate(fs_list):
    with open("photos\\"+i["username"]+".jpg","wb") as f:
      he={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}
      img=requests.get(url=i["userAvatar"],headers=he).content
      f.write(img)
    if n==499:
      print(i["id"],page+1)
      page+=1
      get_fs_img(page,i["id"])

第二步:清除默认头像数据

数据中有一部分采用默认图像,因此需要去除默认图

代码语言:javascript
复制
def clear_default_img():
  """过滤默认头像"""
  for root, dirs, files in os.walk("photos"):
    for i in files:
      img_path="photos\\"+i
      f=open(img_path,"rb")
      b = f.read()
      for file in ["1.jpg","2.jpg","3.jpg","4.jpg"]:#比对默认图片,进行删除
        m = open(file, "rb")
        a=m.read()
        if a==b:
          f.close()
          os.remove(img_path)

第三步:生成粉丝图像

代码语言:javascript
复制
from PIL import Image
import numpy
import os
import random
import numexpr

# line_num: 一行放多少张照片
# # col_num: 一列放多少张照片
# # fans_w: 照片宽为多少
# # fans_h: 照片高为多少

line_num =100#一行放多少张照片
col_num = 100#一列放多少张照片
fans_w = 20#照片宽为多少
fans_h = 20#照片高为多少

def uniform_size(file_path, width, height):
  """将照片统一大小"""
  img = Image.open(file_path)
  if img.mode != "RGBA":img = img.convert("RGBA")
  uniform_img = img.resize((width, height))
  return numpy.array(uniform_img)[:height, :width]#创建一个数组。

def create_img():
  """创造图片,并保存"""
  list_img=[]
  path ="photos/"
  for i in os.listdir(path):
    list_img.append(path + i)
  wight = line_num * fans_w
  height = col_num * fans_h
  expr= numpy.array(uniform_size("icon.jpg", wight, height))#创建一个矩阵,二维数组。
  expr = numexpr.evaluate("expr*0.3")#加快运算速度
  for i in range(line_num):
    for j in range(col_num):
      ex = expr[(j * fans_h):((j + 1) * fans_h), (i * fans_w):((i + 1) * fans_w)]
      un = uniform_size(random.choice(list_img), fans_w, fans_h)#随机获得一张图片,并控制大小
      res = numexpr.evaluate("ex+un*0.7")#加快运算速度
      expr[(j * fans_h):((j + 1) * fans_h), (i * fans_w):((i + 1) * fans_w)] = res
  Image.fromarray(expr.astype(numpy.uint8)).save("fans_logo.png")

if __name__ == "__main__":
create_img()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大家一起学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第二步:清除默认头像数据
  • 第三步:生成粉丝图像
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档