PornHub又名P站,网站流量在全球也是TOP10级别的,和淘宝、百度等站点同一个level,他们家网站的LOGO也显得个性鲜明。

如何用Python画一个呢?

画图需要用到一个库叫Pillow,它是专门用来处理图像的,功能非常强大,修图工具能做的事,都可以用Pillow来实现。

我们可以先分析下这张图的结构

它由两部分组成,左边是黑底白字,右边是黄底黑字,还有一点点圆角。这两部分包裹在一个黑色矩形框中。

思路清楚了后,就可以动手实现

先实现左图

def left_img(text):# 指定字体和字体大小font = ImageFont.truetype('ArialEnUnicodeBold.ttf', FONT_SIZE)font_width, font_height = font.getsize(text)offset_y = font.font.getsize(text)[1][1]blank_height = font_height * 2right_blank = int(font_width / len(text) * 0.25)img_height = font_height + offset_y + blank_height * 2image_width = font_width + right_blank# 设置图片宽高image_size = image_width, img_heightimage = Image.new('RGBA', image_size, BG_COLOR)draw = ImageDraw.Draw(image)# 画图draw.text((0, blank_height), text, fill=LEFT_TEXT_COLOR, font=font)image.save("left.png")return image

运行后生成的图片是这样的

右图也是类似的操作方式,只需要修改背景色和文字颜色

def create_right_img(text: str, font_size: int):radii = RIGHT_PART_RADIIfont = ImageFont.truetype('ArialEnUnicodeBold.ttf', font_size)font_width, font_height = font.getsize(text)offset_y = font.font.getsize(text)[1][1]blank_height = font_heightleft_blank = int(font_width / len(text) * 0.25)image_width = font_width + 2 * left_blankimage_height = font_height + offset_y + blank_height * 2image = Image.new('RGBA', (image_width, image_height), BOX_COLOR)draw = ImageDraw.Draw(image)draw.text((left_blank, blank_height), text, fill=RIGHT_TEXT_COLOR, font=font)# 圆magnify_time = 10magnified_radii = radii * magnify_timecircle = Image.new('L', (magnified_radii * 2, magnified_radii * 2), 0)  # 创建一个黑色背景的画布draw = ImageDraw.Draw(circle)draw.ellipse((0, 0, magnified_radii * 2, magnified_radii * 2), fill=255)  # 画白色圆形# 画4个角(将整圆分离为4个部分)magnified_alpha_width = image_width * magnify_timemagnified_alpha_height = image_height * magnify_timealpha = Image.new('L', (magnified_alpha_width, magnified_alpha_height), 255)alpha.paste(circle.crop((0, 0, magnified_radii, magnified_radii)), (0, 0))  # 左上角alpha.paste(circle.crop((magnified_radii, 0, magnified_radii * 2, magnified_radii)),(magnified_alpha_width - magnified_radii, 0))  # 右上角alpha.paste(circle.crop((magnified_radii, magnified_radii, magnified_radii * 2, magnified_radii * 2)),(magnified_alpha_width - magnified_radii, magnified_alpha_height - magnified_radii))  # 右下角alpha.paste(circle.crop((0, magnified_radii, magnified_radii, magnified_radii * 2)),(0, magnified_alpha_height - magnified_radii))  # 左下角alpha = alpha.resize((image_width, image_height), Image.ANTIALIAS)image.putalpha(alpha)image.save("right.png")return image

效果图

最后一步就是将两张图合并到一张黑底背景的矩形框就好了。

def create(left_text, right_text):left_img = create_left_img(left_text)right_img = create_right_img(right_text, FONT_SIZE)blank = 30bg_img_width = left_img.width + right_img.width + blank * 2bg_img_height = left_img.heightbg_img = Image.new('RGBA', (bg_img_width, bg_img_height), BG_COLOR)bg_img.paste(left_img, (blank, 0))bg_img.paste(right_img, (blank + left_img.width, int((bg_img_height - right_img.height) / 2)), mask=right_img)bg_img.save(f'{left_text}{right_text}.png')

最终的效果图:

想生成其它文字版本只需要换个词就可以,比如GitHub套用P站风格就是这样的

完整源代码可进入公众号主页回复“PH”获取

这个沙雕项目,可以自制PornHub风格LOGO相关推荐

  1. 深井冰!沙雕码农脑洞大,盘点Github上那些不忍直视奇葩脑回路的沙雕项目!

    大家好,我是hub妹,又到了本期分享.这期我们来分享一下Github那些 沙!雕!项!目! PornHub风格Logo生成器 沙雕指数:◉◉◉◉◉◉◉◎◎◎ 一个在线的 PornHub 风格 Logo ...

  2. 我在 GitHub 上都见过哪些沙雕项目?

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 一直对我们的微博保持关注的朋友应该知道,今年年初的时候,我们同时开通了 GitHubDaily ...

  3. Github上这几个沙雕项目,够我玩三天!

    开源最前线(ID:OpenSourceTop) 猿妹综合整理 还记得上次猿妹和大家分享的那个沙雕项目--狗屁不通的文章生成器?要是忘记了点击链接回忆一下:<"狗屁不通文章生成器&quo ...

  4. 【周末轻松一刻】 GitHub 上的这些沙雕项目

    一直对我们的微博保持关注的朋友应该知道,今年年初的时候,我们同时开通了 GitHubDaily 公众号与知乎账号. 在开通知乎账号后,我们回答的第一个问题是<你在 GitHub 上看到过的最有意 ...

  5. 号外号外,第一届沙雕项目竞赛,这些项目以数万Star惨获提名

    一只小狐狸带你解锁NLP/ML/DL秘籍 正文来源: Python空间 好看的皮囊千篇一律,有趣的灵魂没有底线.作为全球最大的同性交友网站,GayHub GitHub 上不止有鲜活的代码,秃头的算法, ...

  6. 盘点 GitHub 上那些沙雕项目

    spring12 过年上映了一部电影,叫<流浪地球>,火得一塌糊涂,相信在座不少人都看过. 电影里面提到了一个叫「春节十二响」的项目不知道大家是否还有印象? 是的,有个沙雕网友把这个项目用 ...

  7. 程序媛 :逛 GitHub 开源项目吗? 很沙雕的那种!

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 来自:GitHub中文社区 GitHub是广大开发者线上"约会"的 ...

  8. GitHub 总星 4w+!删库?女装?表情包?这些沙雕中文项目真是我每天快乐的源泉!...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 作者 |  Rocky0429 来源 |  Python空间 大家好,我是 Rocky ...

  9. 服务器好玩的项目_我的世界MC6个我的世界服务器的故事 论沙雕服主的骚操作...

    ,因为你的分享.点赞.在看我足足的精气神儿! 哈喽大家好,热爱分享游戏经验的小编又给大家带来了最新资讯,开不开心?感兴趣的小伙伴就跟随小编一起看下来吧~ 对于一个常年混迹于各种mc服务器的玩家来说,你 ...

最新文章

  1. 大数据在企业IT的应用
  2. 例说DNS递归/迭代名称解析原理
  3. 程序员必知必会之blog篇
  4. SpringBoot+Vue整合WebSocket实现前后端消息推送
  5. C# 网站静态页面生成器 for 多线程版
  6. 图论为什么这么难_图论是什么,为什么要关心?
  7. extjs4.2 弹出注册用户界面实例
  8. 指针 数组指针 指针数组 函数指针等说明。
  9. UI设计师一定要懂的专业名词
  10. Hadoop中的Streaming(20)
  11. C++ 链表结构的常用操作(单链表)
  12. Java 8 中的 CompletableFuture 太好用了!20 个示例全分享…
  13. GEOS-Chem笔记——模式下载安装+驱动数据+运行流程
  14. DNA损伤修复基因数据库
  15. Google 分析 SDK 之渠道统计
  16. 论Flutter开发如何改善套娃地狱问题
  17. 易能变频器说明书故障代码_易能变频器 EN600-4T0055G/0075P故障代码E-03-东莞英成机电设备...
  18. 利用AIDA64对电脑进行简单的稳定性测试的技巧分享
  19. c语言 sysinfo_c语言函数库
  20. 速围观!上千款“AI黑科技”在此集结

热门文章

  1. 线上线下联动,小程序电商…今年双11“前戏”跟去年有啥不同?
  2. 【21新生必看】重庆邮电大学联通、电信、移动校园网络套餐如何选择
  3. SQL server求百分比
  4. Python实现wvs进行批量扫描
  5. 【C++】17.map和set的模拟实现
  6. 记录自己常用的火狐插件,渗透用
  7. 大学生高校学生管理信息系统设计与开发(论文文档word、程序设计、数据库文件)
  8. 声音生成——将Autoencoder修改成Variant Autoencoder在mnist训练
  9. python删除文件中指定内容
  10. 库卡六轴机器人编程手册_KUKA机器人编程手册 高级.pdf