• Stars
    star
    117
  • Rank 301,828 (Top 6 %)
  • Language
    Python
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

程序员的浪漫方式集合,欢迎大家积极补充...

[TOC]

Table of contents

程序员的520怎么表白

原文地址: https: // github.com / HeLiangHIT / coders_love

一行python的表白

首先祭出绝招,用1行python表白:

print('\n'.join([''.join([('I LOVE U'[(x - y) % 8] if ((x * 0.05)**2 + (y * 0.1)**2 - 1)**3 -
      (x * 0.05)**2 * (y * 0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(15, -15, -1)]))

效果如下:

                 UI LOVE            LOVE UI L
            OVE UI LOVE UI LO   UI LOVE UI LOVE U
          LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI L
         LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI LOV
        LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI LOVE
        OVE UI LOVE UI LOVE UI LOVE UI LOVE UI LOVE U
        VE UI LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI
        E UI LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI
         UI LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI L
        UI LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI LO
          LOVE UI LOVE UI LOVE UI LOVE UI LOVE UI LO
          OVE UI LOVE UI LOVE UI LOVE UI LOVE UI LO
          VE UI LOVE UI LOVE UI LOVE UI LOVE UI LOV
            UI LOVE UI LOVE UI LOVE UI LOVE UI LO
              LOVE UI LOVE UI LOVE UI LOVE UI LO
              OVE UI LOVE UI LOVE UI LOVE UI LO
                 UI LOVE UI LOVE UI LOVE UI L
                   LOVE UI LOVE UI LOVE UI
                    VE UI LOVE UI LOVE UI
                       I LOVE UI LOVE
                          VE UI LOV
                             I L
                              L

原理大概是:

words, line = "I LOVE U", []
for y in range(15, -15, -1):
    line_c = []
    letters = ''
    for x in range(-30, 30):
        expression = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
        if expression <= 0:
            letters += words[(x-y) % len(words)]
        else:
            letters += ' '
    line_c.append(letters)
    line += line_c
print('\n'.join(line))

进一步可以制作成动画:

def heart_text_animation(words="I LOVE U"):
  import time
  for c in words.split():
    line = []
    for y in range(15, -15, -1):
        line_c = []
        letters = ''
        for x in range(-30, 30):
            expression = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
            if expression <= 0:
                letters += c[(x-y) % len(c)]
            else:
                letters += ' '
        line_c.append(letters)
        line += line_c
    print('\n'.join(line))
    time.sleep(1)

粗糙的心形表白图像

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0,2*np.pi, 0.1)
x = 16*np.sin(t)**3
y = 13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)

plt.figure(figsize=(8,6), dpi=80, facecolor='white')
plt.plot(x,y,color='red')
plt.axis('off')
plt.fill(x,y,'hotpink')
plt.text(0, -0.4, 'ME & YOU', fontsize=36, fontweight='bold',
           color='black', horizontalalignment='center')
plt.show()

./out/heart.png

如果需要的话还可以进一步装饰

照片墙

依赖: pip install Image clize

使用: python picture_wall.py --help

Usage: picture_wall.py [OPTIONS] [text...]

生成照片墙

Arguments:
  text...                 Text of picture wall, if not defined this will generage a rectangle picture wall

Options:
  -s, --font-size=INT     font size of a clear value (default: 20)
  -e, --edge-len=INT      sub picture's egde length (default: 50)
  -w, --wall-width=INT    picture number of rectangle width (default: 20)
  -l, --wall-length=INT   picture number of rectangle length (default: 10)
  -d, --pic-dir=STR       picture's path (default: ./img)
  -o, --out-dir=STR       output dir (default: ./out/)
  -p, --font-path=STR     font path (default: ./demo.ttf)
  -m, --method=STR        decrator method, now accept 'alpha', 'size' (default: alpha)

Other actions:
  -h, --help              Show the help

for example:

./picture_wall.py I Love U -s 30 -e 10 ./out/I_LOVE_U.png

./picture_wall.py 我爱你 -s 30 -e 10 ./out/我爱你.png

如果指定为相册文件夹的话,将得到如下效果(文件夹下图片太多而且太大的话会比较慢): ./out/520.png

也可以选择尺寸的方式调整子图,例如: python picture_wall.py 1314 -m size ./out/1314.png

TODO

  • 子照片的处理方式有待提升,目前采用的只是根据字体像素透明度控制透明度,还可以抽象出来让用户选择控制方式~比如:
    • 根据字体像素透明度控制子图形状
    • 根据字体像素透明度控制子图颜色亮度
    • 或者直接采用圆形裁剪子图

爱心情书

依赖: pip install jieba numpy pandas matplotlib wordcloud scipy wordcloud

使用: python heart_cloud_word.py --help

Usage: ./heart_cloud_word.py [OPTIONS] [par...]

生成文字云

Arguments:
  par...

Options:
  -t, --text-file=STR   text file that contain all you word (default: ./data/love_letter.txt)
  -s, --stop-file=STR   the stop word which can't be considered (default: ./data/stopwords.txt)
  -c, --color-img=STR   the color map img (default: ./data/pink.jpg)
  -m, --mask-file=STR   the mask img for the word
  -o, --out-file=STR    output file path which should with sufix of png/jpg... (default: ./out/word_cloud.png)
  -p, --font-path=STR   font path (default: ./demo.ttf)

Other actions:
  -h, --help            Show the help

for example:

./heart_cloud_word.py ./out/word_cloud.png

TODO

  • 增加背景照片和注释文字形成最终类似下图的效果 ./data/demo.jpg

表白密码图片

依赖: pip install Pillow

使用: python text_background_image.py input_file output_file

for example:

python text_background_image.py ./data/mona-lisa.jpg ./out/text_background_image.jpg ./out/text_background_image.jpg

TODO

  • 增加输出照片亮度

表白网站

  1. 参考: http://www.jq22.com/yanshi1073 制作一个类似的网站,充分发挥想象~
  2. 参考: https://github.com/Germey/ValentinesDay 绝对是真情流露,感人肺腑

欢迎关注作者,获取更新信息哦~

关注作者

More Repositories

1

douyin_downloader

抖音视频下载器,批量下载自己喜欢过的视频/上传的视频/关注用户发布的视频/关注用户喜欢的视频。当前已经无法爬取,项目暂时废弃,只能用于学习了。
Python
183
star
2

code_banner

高端大气上档气的banner生成工具和图案集合,python脚本
C
94
star
3

time_frequency

时频分析 + 时变阶分数傅立叶变换普 + 时变滤波 相关的毕业设计课题全部代码和论文+PPT,供各位通信、电子信息工程等相关学弟学妹参考。
MATLAB
84
star
4

polyphase_filter_prj

哈工大软件无线电课设:多相滤波器的原理、实现及其应用,从采样率变换、多相滤波器结构到信道化收发机应用都有matlab介绍和FPGA仿真结果,含答辩PPT、学习笔记和个人总结。
Verilog
44
star
5

picture_scrapy

闲着也是闲着,爬点美女看看吧,欢迎寂寞宅男们继续补充其它美女网站...
Python
34
star
6

pyqtChat

pyqt4编写的聊天软件界面
Python
26
star
7

real_time_recognize

mac上的实时人脸识别程序
Python
19
star
8

idCardNumber

身份证号码的校验和随机产生方法
Python
15
star
9

bp_neural_net

模式识别实验:BP神经网络的matlab实现(根据BP数学原理实现的代码)
MATLAB
14
star
10

ClibUsage

一些开源库的使用方法介绍和实例
C
3
star
11

magic_maze

迷宫游戏
Python
2
star
12

fft_radix

FFT快速算法的MATLAB示例:可以提供C语言的实现思路
MATLAB
2
star
13

WechatOfConsole

控制台微信,摸鱼如呼吸般道法自然
Python
1
star