1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        情人節(jié) ,能否表白成功就看這段Python代碼了

        共 2936字,需瀏覽 6分鐘

         ·

        2020-02-14 23:28

        點擊上方Python知識圈,選擇設(shè)為星標(biāo)

        回復(fù)1024獲取Python資料


        1291fa1721a14937cc6eb12aaf7ef856.webp

        作者@明哥
        公眾號Python編程時光


        閱讀文本大概需要 6?分鐘

        2020年,這個看起來如此浪漫的年份,你還是一個人嗎?

        難不成我還能是一條狗?

        18年的時候,寫過一篇介紹如何使用 Python 來表白的文章。

        沒有看過的,你可以點擊這里查看:你還單身?Python 教你脫單

        提醒你一下,今天就是 2月14日了。什么?還是一條狗呢?

        行吧,那你趕上了,今天的文章,就是為你而寫。

        明哥今天來教你如何使用 Python 來向心中的女神表白。

        前段時間,在微博上刷到了一條推薦。內(nèi)容是這樣的

        12df1b15b1dc853cc87c593b3b033818.webp

        出于好奇,我點開了,放大再放大,emmm,有點意思吖…

        1f6ce62ac2b67c534955130c2e60d616.webp

        這四個字,對于像我這樣靦腆的DS男來說,還真不好意思說,說出來,萬一被拒絕了咋辦?

        使用套路來表白,并觀察對方的反應(yīng),你大概能清楚對方是否對你也有好感,先測試下自己有幾成的把握再下手或許更穩(wěn)妥。

        今天就教大家一個這樣的套路:如何使用 Python 來做出來這樣的圖,有點浪漫,又有點極客。能不能拿下你女神,就要靠你(命)了。(???? ???)

        首先,你得先找到一張你女神的高清圖片(盡量分辨率高點的吧,效果會好點)。

        這里我以一張高圓圓的圖來做一下演示,原圖是這樣的(分辨率是:2000*1328)。

        765b8b8faf98ca804a561357d2d03120.webp

        使用我寫好的腳本運行后,就生成了這樣一張圖,請你點擊,放大再放大。(驚喜?

        c8f2d4f03c399ee94486b3e72e78457a.webp

        然后將這張圖片發(fā)給你的女神,具體話術(shù)你自己想咯。


        好吧,相比女神來說,你可能更在意這是如何實現(xiàn)的(活該你單身)。

        其實原理很簡單,代碼也還不到20 行。

        首先,來講講原理。

        事實上,每一張圖片都是由一個一個的像素點所組成的。而每個像素點,都有自己的顏色,其顏色可以用一個數(shù)組來表示:(a,b,c),其中每位數(shù)的取值范圍都是 0-255。

        比如(0,0,0)代表黑色,(255,255,255)代表白色。

        當(dāng)像素點足夠多的時候,這張照片就是我們所說的高清照片。

        而如果當(dāng)像素點太少,我們的肉眼就能感知到明顯的鋸齒感。

        用 Excel 畫了個圖,每一方格代表一個像素,其中若我的字體的大小設(shè)置 5(非字號5,而是每個字占用5個像素),效果大概就是如下這樣子。

        e0093bb7a67ed8785f62c454dfc4db3f.webp

        我只要每個像素取出一個像素值,并使用這個像素做為該字的顏色即可,在像素量夠多的情況下,從遠(yuǎn)處看,是能看到我們原來圖像的輪廓的。

        有了思路,就可以開始我們的代碼。

        首先,使用 pillow.Image讀取圖像,并使用load函數(shù)獲取到每一個像素值。

        img_raw?=?Image.open(img_path)
        img_array?=?img_raw.load()

        然后新建一張畫布,并選好你要使用的字體和字體大小。

        img_new?=?Image.new("RGB",?img_raw.size,?(0,?0,?0))
        draw?=?ImageDraw.Draw(img_new)
        font?=?ImageFont.truetype('C:/Windows/fonts/Dengl.ttf',?font_size)

        由于需要不斷循環(huán) “我喜歡你!”,這五個字符。所以這里可以while循環(huán) yield 來實現(xiàn)一個生成器。

        def?character_generator(text):
        ????while?True:
        ????????for?i?in?range(len(text)):
        ????????????yield?text[i]

        最后,要給這些字加上相應(yīng)的顏色,寫入新創(chuàng)建的畫布中。

        for?y?in?range(0,?img_raw.size[1],?font_size):
        ????for?x?in?range(0,?img_raw.size[0],?font_size):
        ????????draw.text((x,?y),?next(ch_gen),?font=font,?fill=img_array[x,?y],?direction=None)

        最后將成品保存

        img_new.convert('RGB').save("F://gyy_save.jpeg")

        完整代碼如下,供你參考

        from?PIL?import?Image,?ImageDraw,?ImageFont

        font_size?=?7
        text?=?"我喜歡你!"
        img_path?=?"F://gyy.jpeg"

        img_raw?=?Image.open(img_path)
        img_array?=?img_raw.load()

        img_new?=?Image.new("RGB",?img_raw.size,?(0,?0,?0))
        draw?=?ImageDraw.Draw(img_new)
        font?=?ImageFont.truetype('C:/Windows/fonts/Dengl.ttf',?font_size)

        def?character_generator(text):
        ????while?True:
        ????????for?i?in?range(len(text)):
        ????????????yield?text[i]

        ch_gen?=?character_generator(text)

        for?y?in?range(0,?img_raw.size[1],?font_size):
        ????for?x?in?range(0,?img_raw.size[0],?font_size):
        ????????draw.text((x,?y),?next(ch_gen),?font=font,?fill=img_array[x,?y],?direction=None)

        img_new.convert('RGB').save("F://save.jpeg")


        最后再多上幾張效果圖吧(對,我是海賊迷)。
        1.?路飛

        69054b6b73fafc10d4006c2c6027ce24.webp


        2.?索隆

        6d2bc2e4596f1d83c35c61ad65041a86.webp


        3. 山治

        fa9539c6bcf5431e0a7e1586f0b053bd.webp



        2a040c74d7e1db2a49cb75f5ba0109c6.webp

        -----------------------公眾號:Python知識圈(ID:PythonCircle博客:www.pyzhishiquan.com知乎:Python知識圈bilibili:菜鳥程序員的日常

        一個學(xué)習(xí)Python的人,喜歡分享,喜歡搞事情!長按下圖二維碼關(guān)注,和你一起領(lǐng)悟Python的魅力。


        留言打卡 DAY 02

        今日的留言話題是:分享下你對你的對象或者親人做過的最浪漫的事情。關(guān)于留言打卡的規(guī)則可以參考今天的第二篇文章??(點擊第二篇文章鏈接查看詳細(xì)打卡規(guī)則),請按照?昵稱+天數(shù)(請以自己實際打卡的天數(shù)為準(zhǔn),如day1 or day2 or day3)+?留言內(nèi)容(不少于15字)的方式留言。

        Python知識圈公眾號的交流群已經(jīng)建立,群里可以領(lǐng)取 Python 和人工智能學(xué)習(xí)資料,大家可以一起學(xué)習(xí)交流,效率更高,如果是想發(fā)推文、廣告、砍價小程序的敬請繞道!一定記得備注「交流學(xué)習(xí)」,我會盡快通過好友申請哦!通過好友后私聊我「學(xué)習(xí)資料」或者「進(jìn)群」都可以。

        掃碼添加,備注:交流學(xué)習(xí)




        往期推薦01

        公眾號所有文章匯總導(dǎo)航(2-10更新)

        02

        拒絕低效!Python教你爬蟲公眾號文章和鏈接

        03

        一行代碼簡化Python異常信息


        分享給你的朋友

        點個在看

        f80d41e6b5d2ed53896204b490ace405.webp

        瀏覽 56
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日韩一级中文字幕 | 97自拍视频免费观看 | 精品婷婷一区二区三区四区五区 | 网络红人思瑞视频在线观看 | 麻豆亚洲AV成人无码久久精品 | 搡老熟女视频 | 丰满饱满极品艳妇xxxx | 黄色一级免费看 | 久久午夜福利视频 | 国产片婬乱一级毛片视频明星 |