本篇內(nèi)容主要講解“Python怎么將圖像音視頻等資源文件隱藏在代碼中”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python怎么將圖像音視頻等資源文件隱藏在代碼中”吧!
創(chuàng)新互聯(lián)公司專注于義安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供義安營銷型網(wǎng)站建設(shè),義安網(wǎng)站制作、義安網(wǎng)頁設(shè)計(jì)、義安網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造義安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供義安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
這段代碼可以將二進(jìn)制文件轉(zhuǎn)存為python腳本文件,供其他腳本引用。代碼最后附有使用的例子,演示用的圖片可以隨便照一張。除了轉(zhuǎn)存二進(jìn)制數(shù)據(jù),還提供了兩個(gè)方法:
get_fp():返回二進(jìn)制的IO對(duì)象(類文件對(duì)象)save():保存為本地文件
# -*- coding: utf-8 -*-"""以python模塊形式存儲(chǔ)、使用二進(jìn)制文件"""import osimport base64from io import BytesIOdef bin2module(bin_file, py_file=None): """二進(jìn)制文件轉(zhuǎn)存為python模塊 bin_file - 二進(jìn)制文件名 py_file - 生成的模塊文件名,默認(rèn)使用二進(jìn)制文件名,僅更改后綴名 """ fpath, fname = os.path.split(bin_file) fn, ext = os.path.splitext(fname) if not py_file: py_file = os.path.join(fpath, '%s.py'%fn) with open(bin_file, 'rb') as fp: content = fp.read() content = base64.b64encode(content) content = content.decode('utf8') with open(py_file, 'w') as fp: fp.write('# -*- coding: utf-8 -*-\n\n') fp.write('import base64\n') fp.write('from io import BytesIO\n\n') fp.write('content = """%s"""\n\n'%content) fp.write('def get_fp():\n') fp.write(' return BytesIO(base64.b64decode(content.encode("utf8")))\n\n') fp.write('def save(file_name):\n') fp.write(' with open(file_name, "wb") as fp:\n') fp.write(' fp.write(base64.b64decode(content.encode("utf8")))\n')if __name__ == '__main__': """測(cè)試代碼""" # 將圖像文件轉(zhuǎn)存為img_demo.py bin2module('forever.png', 'demo.py') # 導(dǎo)入剛剛生成的demo模塊 import demo # 用pillow打開圖像,驗(yàn)證demo模塊的get_fp():返回二進(jìn)制的IO對(duì)象(類文件對(duì)象) from PIL import Image im = Image.open(demo.get_fp()) im.show() # 保存為本地文件,驗(yàn)證demo模塊的save():保存文件 demo.save('demo_save.png')
補(bǔ)充:下面看下Python實(shí)現(xiàn)將視頻按間隔截取為圖片(附代碼)
輸入:一段視頻。
輸出:取出的視頻幀。
準(zhǔn)備:新建一個(gè)文件夾,用來放置截出來視頻幀。
代碼實(shí)現(xiàn):
import cv2import argparseimport osdef parse_args(): """ Parse input arguments """ parser = argparse.ArgumentParser(description='Process pic') parser.add_argument('--input', help='video to process', dest='input', default=None, type=str) parser.add_argument('--output', help='pic to store', dest='output', default=None, type=str) #default為間隔多少幀截取一張圖片 parser.add_argument('--skip_frame', dest='skip_frame', help='skip number of video', default=100, type=int) #此處可更改提取幀的間隔 args = parser.parse_args(['--input','','--output','']) #此處添加路徑,input為輸入視頻的路徑 ,output為輸出存放圖片的路徑 return argsdef process_video(i_video, o_video, num): cap = cv2.VideoCapture(i_video) num_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT) expand_name = '.jpg' if not cap.isOpened(): print("Please check the path.") cnt = 0 count = 0 while 1: ret, frame = cap.read() cnt += 1 # how # many # frame # to # cut if cnt % num == 0: count += 1 cv2.imwrite(os.path.join(o_video, str(count) + expand_name), frame) if not ret: breakif __name__ == '__main__': args = parse_args() if not os.path.exists(args.output): os.makedirs(args.output) print('Called with args:') print(args) process_video(args.input, args.output, args.skip_frame)
運(yùn)行起來非常容易,若是出錯(cuò)請(qǐng)檢查 路徑書寫 是否正確。如下是一種絕對(duì)路徑的寫法舉例,前方加 r。
args = parser.parse_args(['--input', r'F:\data_video\IMG_4395.MOV', '--output', r'F:data_rgb_\video_to_frame'])
到此,相信大家對(duì)“Python怎么將圖像音視頻等資源文件隱藏在代碼中”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁標(biāo)題:Python怎么將圖像音視頻等資源文件隱藏在代碼中
網(wǎng)站鏈接:http://aaarwkj.com/article26/jeegjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、域名注冊(cè)、面包屑導(dǎo)航、網(wǎng)站排名、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)