Sevgililer Günü burada, Python ile itiraf etmen için sana bir numara öğret

[Editörün notu] Çok romantik görünen 2020 yılında hala yalnız mısınız?

Yazar | Ming Ge

Sorumlu Editör | Yu Yan

Kaynak | Python Programlama Süresi (ID: Cool-Python)

Hâlâ bir köpek olabilir miyim?

18 yılda, Python'u itiraf etmek için nasıl kullanacağıma dair bir makale yazdım.

Yaratıcılık ve kullanım etkisi iyi olsa da, bir eksiklik var, bu exe dosyası, tanrıçanın ona katılmak için bilgisayarı açması ve sonra sizin tarafınızdan başarılı bir şekilde "motive edilmesi" gerekiyor.

Çok erken bir makale olduğu için muhtemelen pek çok kişi okumamıştır.

Size hatırlatmak için yarından sonraki gün 14 Şubat. ne? Veya bir köpek?

Tamam, o zaman yakaladınız Bugünün makalesi sizin için yazılmıştır.

Ming Ge, tanrıçanıza itiraf etmek için Python'u nasıl kullanacağınızı öğretecek.

Bir süre önce Weibo hakkında bir tavsiye aldım. İçerik böyle

Merakımdan, üzerine tıkladım, yakınlaştırdım ve tekrar yakınlaştırdım, emmm, bu biraz ilginç ...

Bu dört kelime, benim gibi utangaç olan bir DS'li adam için gerçekten utanç verici.Eğer söylersen, ya reddedilirsen?

Diğer kişinin tepkisini itiraf etmek ve gözlemlemek için rutinleri kullanın. Diğer kişinin sizin hakkınızda iyi bir izlenime sahip olup olmadığını muhtemelen anlayabilirsiniz. Başlamadan önce kendinize ne kadar güvendiğinizi test etmek daha güvenli olabilir.

Bugün size bunun gibi bir rutin öğreteceğim: Python'u böylesine bir resim yapmak için nasıl kullanmalı, biraz romantik ve biraz da inek. Tanrıçanızı alt etmek size (kader) bağlıdır. ( )

Öncelikle, tanrıçanızın yüksek çözünürlüklü bir resmini bulmalısınız (daha yüksek bir çözünürlüğe sahip olmaya çalışın, efekt daha iyi olacaktır).

Burada yüksek yuvarlak bir resimle göstereceğim, orijinal resim şu şekildedir (çözünürlük: 2000 * 1328).

Yazdığım script ile çalıştırdıktan sonra böyle bir resim oluşuyor, lütfen tıklayın, yakınlaştırın ve tekrar yakınlaştırın. (Sürpriz?

Sonra bu resmi tanrıçanıza gönderin ve belirli kelimeleri düşünebilirsiniz.

Bunun nasıl başarıldığını tanrıçadan daha çok önemsiyor olabilirsiniz ( Bekar olmayı hak ediyorsun ).

Aslında, prensip çok basittir ve kod 20 satırdan azdır.

İlk önce prensip hakkında konuşalım.

Aslında her resim bir pikselden oluşur. Her pikselin kendi rengi vardır ve rengi bir dizi ile temsil edilebilir: (a, b, c), burada her basamağın değer aralığı 0-255'tir.

Örneğin, (0,0,0) beyazı ve (255,255,255) siyahı temsil eder.

Yeterli piksel olduğunda, bu fotoğrafa yüksek çözünürlüklü fotoğraf diyoruz.

Ve çok az piksel varsa, çıplak gözlerimiz belirgin bir pürüzlü hissi algılayabilir.

Excel ile bir resim çizdim ve her kare bir pikseli temsil ediyor. Yazı tipi boyutum ayarlanmışsa

5 (yazı tipi boyutu 5 değil, ancak her kelime 5 pikseli kaplar), etki muhtemelen aşağıdaki gibidir.

Sadece her piksel için bir piksel değeri almam ve bu pikseli kelime rengi olarak kullanmam gerekiyor.Yeterli piksel varsa, orjinal resmimizin ana hatları belli bir mesafeden görülebiliyor.

Fikirlerle kodumuza başlayabiliriz.

İlk olarak, görüntüyü okumak için pillow.Image kullanın ve her piksel değerini almak için yükleme işlevini kullanın.

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

Ardından yeni bir tuval oluşturun ve kullanmak istediğiniz yazı tipini ve yazı tipi boyutunu seçin.

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 )

Sürekli olarak "Senden hoşlanıyorum!" Diye döngü yapma ihtiyacından dolayı bu beş karakter. Yani burada bir jeneratör gerçekleştirmek için while döngüsü verilebilir.

def character_generator (metin): while True: aralıktaki i için (len (metin)): metin verir

Son olarak, bu kelimelere karşılık gelen renkleri ekleyin ve bunları yeni oluşturulan tuvale yazın.

aralıktaki y için (0, img_raw.size, font_size): aralıktaki x için (0, img_raw.size, font_size): draw.text ((x, y), next (ch_gen), font_array, yön = Yok)

Sonunda bitmiş ürünü kaydedin

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

Tam kod, referansınız için aşağıdaki gibidir

PIL içe aktarımdan Image, ImageDraw, ImageFont font_size = 7text = "Senden hoşlanıyorum!" 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 (metin): while True: aralıktaki i için (len (metin)): metin verir ch_gen = character_generator (metin) aralıktaki y için (0, img_raw.size, font_size): aralıktaki x için (0, img_raw.size, font_size): draw.text ((x, y), next (ch_gen), font = font, fill = img_array , yön = Yok) img_new.convert ('RGB']. kaydet ("F: //save.jpeg")

Son olarak, birkaç görüntü daha ekleyin (evet, ben bir Korsan hayranıyım).

1. Luffy

2. Sauron

3. Sanji

Uzaktan çalışan 50.000 kişinin ByteDance'ının arkasında, Feishu'nun evrimi

Lei Jun kişisel olarak Xiaomi 10'un dört ana malzemesini ifşa etti!

Çince versiyonu açık kaynaktır! Bu, en klasik Python programlama ders kitabı olabilir

Bir mimara yükseltirken, programcıların hangi becerilere çok fazla dikkat etmeleri gerekmez? | Programcıların söyleyecek bir şeyleri var

Veri analizi, koronavirüs hakkındaki gerçeği ortaya çıkarmaya nasıl yardımcı olabilir?

2020'de blockchain alanındaki en etkili 20 kişi

İlkbaharda işe alım tamamlandı! Kıdemli bir teknik mülakatçı size bir Java mülakatına nasıl hazırlanacağınızı öğretir! | CSDN blog seçimi
önceki
Berkeley AI Araştırma Enstitüsü: Takviyeli öğrenme, GPT2 ve diğer otoregresif dil modellerinin eksikliklerini telafi etmenin iyi bir yolu mu?
Sonraki
Savaş Salgını·Güney Gölü Taş Resim Faks Aşk
Julia dilinin yüksek yeniden kullanılabilirliği, kusurlardan ve kusurlardan mı kaynaklanıyor?
2020'de uzaktan çalışmak çok mu zor? Teknoloji uzmanlarının hepsi yardım ediyor
Veri analizi koronavirüs hakkındaki gerçeği nasıl ortaya çıkarır?
ByteDance'ın 50.000 uzak ofisinin arkasında, Feishu'nun evrimsel yolu
Birleşik bir işletim sistemi olan UOS'un resmi web sitesi resmen açıldı; Megvii "maskeli yüz tanıma" ya yanıt verdi; IntelliJ IDEA 2019.3.3 yayınlandı | Geek Headlines
2020'de blockchain'de en etkili 20 kişi, Justin Sun da listede
17 milyar parametre desteği ile Microsoft, tarihteki en büyük Transformer modeli T-NLG'yi piyasaya sürdü
Wenzhou soğuk dalga uyarısı verdi! Kuvvetli soğuk hava, şiddetli yağmur, sulu kar ... Üşütmemeye dikkat edin
Xiaomi OV, Google ile savaşmak için birleşmiyor
Salgınla savaşmaya kararlı olan edebiyat ve sanat çevreleri harekete geçti - Ulusal Resim ve Hat Sanatı Müzesi, salgınla mücadele eylemlerini övüyor
Japon Matsuyama Ballet Company, Çin ulusal marşını söylüyor ve Çince "Çin'i seviyorum Wuhan, haydi" diye bağırıyor
To Top