雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
今年的武漢大學沒有了往年的人山人海,但是美麗的櫻花依然在春天裡獨自綻放……

武大開通了#櫻花雲直播# ,3月16日-3月25日,每天 10:00-16:00。相約武大官博,每天看不同地點的櫻花。
同時武大信管院的朱永春同學,用Python敲出櫻花開放,引發熱搜。
武大微網誌後來還開源了代碼:
這樣我們也能在自己的電腦上實作櫻花開放全過程🌸
根據圖中依次執行即可。
再來講講此處的原理(引用自 Python程式設計時光)。
事實上,每一張圖檔都是由一個一個的像素點所組成的。而每個像素點,都有自己的顔色,其顔色可以用一個數組來表示:(a,b,c),其中每位數的取值範圍都是 0-255。
比如(0,0,0)代表黑色,(255,255,255)代表白色。
當像素點足夠多的時候,這張照片就是我們所說的高清照片。
而如果當像素點太少,我們的肉眼就能感覺到明顯的鋸齒感。
首先,使用 opencv 的 cv2.imwrite() 函數讀寫,再儲存為’.jpeg’字尾的圖像
cv2.imwrite("pic/frame%d.jpg" % count, image) # save frame as JPEG file
建立一張畫布,再選擇字型和字型大小。
blank = Image.new("RGB", [len(img[0]), len(img)], "white")
drawObj = ImageDraw.Draw(blank)
n = 10
font = ImageFont.truetype('C:/Windows/Fonts/Microsoft YaHei UI/msyhbd.ttc', size=n - 1)
寫個for循環生成資料,要給這些字加上相應的顔色字型,寫入建立的畫布中。
for i in range(0, len(img), n):
for j in range(0, len(img[i]), n):
text = '武漢加油'
drawObj.ink = img[i][j][0] + img[i][j][1] * 256 + img[i][j][2] * 256 * 256
drawObj.text([j, i], text[int(j / n) % len(text)], font=font)
print('完成處理——', i, j)
blank.save('new/new_' + pic, 'jpeg')
最後将圖檔寫進視訊,導出即可。
def picvideo(path, size):
# path = r'C:\Users\Administrator\Desktop\1\huaixiao\\'#檔案路徑
filelist = os.listdir(path) # 擷取該目錄下的所有檔案名
filelist = resort(filelist)
'''
fps:
幀率:1秒鐘有n張圖檔寫進去[控制一張圖檔停留5秒鐘,那就是幀率為1,重複播放這張圖檔5次]
如果檔案夾下有50張 534*300的圖檔,這裡設定1秒鐘播放5張,那麼這個視訊的時長就是10秒
'''
fps = 24
# size = (591,705) #圖檔的分辨率片
file_path = 'video/new.mp4'# 導出路徑
fourcc = cv2.VideoWriter_fourcc('D', 'I', 'V', 'X') # 不同視訊編碼對應不同視訊格式(例:'I','4','2','0' 對應avi格式)
video = cv2.VideoWriter(file_path, fourcc, fps, size)
for item in filelist:
if item.endswith('.jpg'): # 判斷圖檔字尾是否是.png
item = path + '/' + item
img = cv2.imread(item) # 使用opencv讀取圖像,直接傳回numpy.ndarray 對象,通道順序為BGR ,注意是BGR,通道值預設範圍0-255。
video.write(img) # 把圖檔寫進視訊
video.release() # 釋放
代碼千萬行,愛你當首行!
無數個“武漢加油”彙聚在一起,每個字都是一個像素點,為你敲出一朵櫻花的延時開放🌸
看一朵花開,等花開成海,和武大櫻花一起為武漢加油!
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/zhibo立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-03-24
本文作者::朱小五
本文來自:“
大資料DT 微信公衆号”,了解相關資訊可以關注“
大資料DT”