1. 程式人生 > >最新的有趣開源,Python製作抖音特有的重影彩色圖片!

最新的有趣開源,Python製作抖音特有的重影彩色圖片!

最新的有趣開源,Python製作抖音特有的重影彩色圖片!

 

靈光一閃,這麼簡單的東西為什麼我蠢了???

request.urlretrieve(img_url, 'background.jpg')

最新的有趣開源,Python製作抖音特有的重影彩色圖片!

 

當總結寫的假的好麼?

最新的有趣開源,Python製作抖音特有的重影彩色圖片!

 

然後更改了一下,現在是可以

 功能1:批量下載圖片

功能2:轉化為抖音圖片(無論提交外鏈或者本地圖片)

 #!/usr/bin/env python 
# -*- coding: utf-8 -*- 
# @Time : 2018/11/15 19:40 
# @Author : Empirefree 
# @File : 2.py 
# @Software: PyCharm Community Edition
import copy
import os
import argparse
import re
import numpy as np
from urllib import request
from PIL import Image
import requests
from lxml import etree
#顯示下載資料塊
def cbk(a,b,c):
 '''回撥函式
 @a:已經下載的資料塊
 @b:資料塊的大小
 @c:遠端檔案的大小
 '''
 per=100.0*a*b/c
 if per>100:
 per=100
 print('%.2f%%' % per)
def Download():
 user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
 headers = {
 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
 response = requests.get('http://www.ivsky.com/tupian/ziranfengguang/', headers=headers)
 # 使用lxml解析網頁
 html = etree.HTML(response.text)
 img_urls = html.xpath('.//img/@src') # 先找到所有的img
 i = 0
 for img_url in img_urls:
 request.urlretrieve(img_url, 'image' + str(i) + '.jpg', cbk)
 i += 1
 print('已成功儲存為/image[].jpg')
 print('下載完成!!!')
def main(imagepath):
 #將圖片轉換為三維陣列
 img = Image.open(imagepath)
 img_arr = np.array(img)
 #提取R
 img_arr_r = copy.deepcopy(img_arr)
 img_arr_r[:, :, 1:3] = 0
 #提取GB
 img_arr_gb = copy.deepcopy(img_arr)
 img_arr_gb[:, :, 0] = 0
 #建立畫布並將圖片錯放開
 img_r = Image.fromarray(img_arr_r).convert('RGBA')
 img_gb = Image.fromarray(img_arr_gb).convert('RGBA')
 canvas_r = Image.new('RGB', img.size, color=(0, 0, 0))
 canvas_gb = Image.new('RGB', img.size, color=(0, 0, 0))
 canvas_r.paste(img_r, (6, 6), img_r)
 canvas_gb.paste(img_gb, (0, 0), img_gb)
 img_douyin = Image.fromarray(np.array(canvas_gb) + np.array(canvas_r))
 img_douyin.save('douyin.jpg')
 img_douyin.show()
def IsHttp(imagepath):
 if re.search('http', imagepath) != None:
 return 1
 else:
 return 0
if __name__ == '__main__':
 # parser = argparse.ArgumentParser()
 # parser.add_argument('-i', '--image', help='Image to be processed(give the file path).')
 # args = parser.parse_args()
 # main(args.image)
 while(1):
 print('溫馨提示(您目前檔案路徑為):',os.path.dirname(os.path.realpath(__file__)))
 fun = int(input('請輸入您想選擇的功能:[1]批量下載圖片 [2]製作抖音圖片
'))
 if fun == 1:
 Download()
 else:
 imagepath = input('請輸入您的圖片路徑: ')
 if IsHttp(imagepath):
 request.urlretrieve(imagepath, 'background.jpg') #下載圖片
 imagepath = os.path.abspath('background.jpg')
 main(imagepath)
 print('載入完畢.......')

抖音圖片2.0

實現目標(如下所示):

最新的有趣開源,Python製作抖音特有的重影彩色圖片!

 

實現效果:

最新的有趣開源,Python製作抖音特有的重影彩色圖片!

 

程式碼分析:

1、將圖片轉換成三維陣列,然後對於rgb()這三種顏色提取

2、Rgb(255, 0, 0) 和Rgb(0, 255, 255)位置改變一下()然後就會有畫素錯位的效果

1 canvas_r.paste(img_r, (6, 6), img_r)

3.然後單純儲存,顯示圖片即可

1 img_douyin.save('douyin.jpg') 2 img_douyin.show()