<acronym id="ttv7c"><li id="ttv7c"><address id="ttv7c"></address></li></acronym>
    1. <var id="ttv7c"></var>
      <acronym id="ttv7c"><em id="ttv7c"><dfn id="ttv7c"></dfn></em></acronym>
      
      
          齊魯熱線主頁 > 商訊 > 正文 >

          這輩子不想打工?先給你打個碼(附python源碼)

          時間:2020-04-21 10:57:35 來源:互聯網 閱讀:-

          文/IT可達鴨

          圖/IT可達鴨、網絡

          前言

          一段來自網絡的話:

          打工? 這輩子都不可能打工的。 做生意又不會做、 只能靠偷電瓶車維持這種生活!

          據說,發表該言論的“網紅”最近刑滿出獄,各大網紅公司“三顧茅廬”請他出山.....

          為何會盛行這種不好的風氣?作為一名碼農,給大伙分享一段代碼,給他打個碼。

          這次分享一個圖片轉字符畫的一個源碼,需要有圖像的一些基本知識。

          • 環境配置

          python版本: 3.6.0

          代碼編輯工具:pycharm

          文本編輯工具:Notepad++

          項目所需要的環境安裝包

          pip install pillow


          第一步:導入相關的python包

          # encoding:utf-8
          from PIL import Image

          # 全局變量
          ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

          導入PIL包,Python Imaging Library,是Python平臺的圖像處理標準庫。PIL功能非常強大,API也非常簡單易用。

          定義一個全局變量 ascii_chat, 因為后面代碼會不斷使用這個變量,所以把它定義為全局變量,方便調用。我們的字符畫所使用到的字符集,一共有 70 個字符,字符的種類與數量可以自己根據字符畫的效果反復調試,

          這輩子不想打工?先給你打個碼(附python源碼)


          第二步:灰度映射

          def get_char(gray_pix, alpha = 256):
             """將256灰度映射到指定字符上"""
             if alpha == 0:
                 return ' '
             length = len(ascii_char)
             return ascii_char[int(gray_pix/((256.0 + 1)/length))]

          灰度值:指黑白圖像中點的顏色深度,范圍一般從0到255,白色為255,黑色為0,故黑白圖片也稱灰度圖像

          我們可以使用灰度值公式將像素的 RGB 值映射到灰度值:

          gray = 0.2126 * r + 0.7152 * g + 0.0722 * b

          再利用一個不重復的字符列表,灰度值?。ò担┑挠昧斜黹_頭的符號(在上定義的一個全局變量),灰度值大(亮)的用列表末尾的符號。

          這輩子不想打工?先給你打個碼(附python源碼)


          第三步:圖片轉化

          def transform(img_path):
             """對圖片進行處理"""
             img = Image.open(img_path)
             gray_img = img.convert('L')
             width, height = img.size


             # 將圖片進行縮放,使得最終結果更容易查看
             rate = round(300.0 / width, 3)
             rate2 = round(110.0 / width, 3)
             width, height = int(width * rate), int(height * rate2)
             gray_img = gray_img.resize((width, height), Image.ANTIALIAS)


             # 獲取每個像素點對應的字符
             code_pic = ''
             for i in range(height):
                 for j in range(width):
                     code_pic += get_char(gray_img.getpixel((j, i)))
                 code_pic += '\r\n'
             return code_pi

          img.convert('L'), 就是把RGB彩色圖片轉為灰度圖片(利用上面的灰度公式)。為了展示方便,這里把圖片進行縮放,縮放比例為 rate。

          通過雙重循環對每個像素點值進行轉化,轉化為指定的字符。

          這輩子不想打工?先給你打個碼(附python源碼)

          第四步: 保存結果

          def save_txt(filename, content):
             """保存txt"""
             with open(filename, 'w', encoding='utf-8') as wf:
                 wf.write(content)

          這是保存txt文本的寫法,是不是很簡潔。利用with關鍵詞,省去了close()函數的調用,使得代碼更加精簡。

          這輩子不想打工?先給你打個碼(附python源碼)

          第五步: 主函數

          if __name__ == '__main__':
             img_path = 'timg.jpg'
             txt_path = 'time.txt'
             code_pic = transform(img_path)
             save_txt(txt_path, code_pic)
             print(code_pic)

          這輩子不想打工?先給你打個碼(附python源碼)


          輸入輸出


          這輩子不想打工?先給你打個碼(附python源碼)


          這輩子不想打工?先給你打個碼(附python源碼)


          結語:

          其實,整個源碼看下來,沒有難度,可以說非常簡單。是的,有難度的代碼,其實都是由一塊又一塊簡單的代碼構成。老老實實敲代碼,還是不要跟風學習負面網紅,生活應該來點正能量。


          推薦閱讀:eos200d

          (正文已結束)

          免責聲明及提醒:此文內容為本網所轉載企業宣傳資訊,該相關信息僅為宣傳及傳遞更多信息之目的,不代表本網站觀點,文章真實性請瀏覽者慎重核實!任何投資加盟均有風險,提醒廣大民眾投資需謹慎!

          精品亚洲三级片日韩视频黄_亚洲国产一区二区三区_三级黄色免费国产情侣强奸_黄网站色视频三级片
            <acronym id="ttv7c"><li id="ttv7c"><address id="ttv7c"></address></li></acronym>
            1. <var id="ttv7c"></var>
              <acronym id="ttv7c"><em id="ttv7c"><dfn id="ttv7c"></dfn></em></acronym>