基于CSDN完成TEASOFT的MOOC編輯整理

      網友投稿 713 2022-05-29

      簡 介:

      CSDN平臺中的Markdown編輯器具有多媒體(很可惜沒有音頻,視頻存儲)的存儲編輯能力。這樣對于TEASOFT軟件制作視頻所需要的文字、圖片、多媒體等文件,在CSDN的Markdown文件以及Nutdisk中的MicroVideo目錄的聯合存儲。便可以對視頻文檔的準備進行網絡聯合制作,加速制作過程。

      關鍵詞:

      csdn,teasoft,mooc

      背景介紹

      目 錄

      Contents

      錄制所需要的資源

      資源存儲于應用

      資源匯總

      文字資源

      動圖資源

      多媒體資源

      相關命令

      gif2mpg

      mpeg2gif

      dopaste

      總 結

      背景介紹

      目 錄

      Contents

      錄制所需要的資源

      資源存儲于應用

      資源匯總

      文字資源

      動圖資源

      多媒體資源

      相關命令

      gif2mpg

      mpeg2gif

      dopaste

      總 結

      利用TEASOFT教學軟件可以進行MOOC課程視頻拍攝資源整理。一方面可以利用CSDN的Markdown編輯將所需要制作視頻的腳本資源進行規劃,同時也將所需要的資源進行匯總存儲。

      下面就利用CSDN文檔完成TEASOFT 慕課視頻拍攝資源匯總相關的方法進行整理。

      0.1 錄制所需要的資源

      根據 微視頻制作方法與要素 對于需要準備的資料包括有以下種類:

      內容的邏輯層,顯示了內部邏輯關聯 與 因果關系;

      文字和語言:除了多數的標題之外,就是視頻中的Caption。

      用于細節展示所使用到的多媒體資源:

      圖片;

      動圖;

      視頻;

      音效;

      0.2 資源存儲于應用

      0.2.1 資源的存儲

      關于內容的邏輯,通過利用關系圖、思維導圖、表格、圖形、公式以及標題文字組成。這部分內容主要承載在TEASOFT的DOP文件中。最終在Markdown中進行集中展示;

      對于文字和解說語言則使用Markdown內的注釋語言進行。

      這是用于視頻內語言文本對應的存在的格式。

      關于圖片、動圖(尺寸小于5M字節)可以存儲于Markdown文檔中。關于視頻、音效等則存儲在:

      D盤下的Nutdisk的 MicroVideo子目錄

      除此之外,可以將搜索到的所用的資源在網絡上的連接進行存儲。在正式合成的過程中再進行下載。

      0.2.2 資源的導入

      文件的導數包括:

      將文本設置TEASOFT的每一步的解說備注中;

      將圖片、動圖、AVI導入TEASOFT的背景圖片和動圖;

      將音樂盜圖TEASOFT的音樂打開指令中。

      源匯總包括有如何將資源進行存儲以及如何將存儲資源導入TEASOFT兩方面內容。

      1.1 文字資源

      1.1.1 文本存儲

      文本,作為解說詞的文本存儲在Markdown文檔中,與正常的編輯過程是一致的。

      這是一個測試的解說詞的文本,存儲于一個Action中的解說詞。

      產生一個新的NULLAction,完成解說詞的定義。

      可能帶來的問題是什么? 這應該是自然過渡到下一個Action的解說磁。

      1.1.2 文本的使用

      也就是將編輯CSDN中的文檔添加到Action的注解中。使用MemoForm中的命令:

      Record - PasteClipboard - WMF-PY-HELP

      使用 dopaste命令

      修改:現在TEASOFT軟件還存在一定的問題:

      自動過濾">"

      按照相鄰 > 產生NULL, 不相鄰的 > 則自動過渡到下一個HELP中。

      當第一個ActionPoint==-1的時候,好像是增加的NULL,

      1.1.3 清除所有幫助信息

      利用AcitonForm中的 Help按鈕,使用 CONTROL+SHIFT 點擊HELP 按鈕(右上角第二個),便可以清除所有幫助信息以及NULLAction。

      1.2 圖片、動圖資源

      1.2.1 圖片、動圖存儲

      將所需要的圖片存儲在Markdown只要使用正常的 cdpp,csdnpp指令即可,便可以將圖片存儲Markdown中。

      注意: 在粘貼這在圖片的過程中不能夠添加圖片注釋。也就是只能夠添加圖片的尺寸。

      1.2.2 圖片、動圖使用

      這里有三種方法,分別如下。

      使用鼠標右鍵,獲得圖片拷貝,然后TEASOFT粘貼剪切板最終加入Action的背景圖片。

      使用鼠標右鍵,獲得圖片的地址。然后使用命令csdnpp * ,便可以將圖片加入Action背景圖片。

      這個命令可以將文字、圖片,動圖,視頻都進行粘貼。這是一個直接從Markdown編輯器中將資源粘貼到TEASOFT中的Action方法。

      1.3 多媒體資源

      1.3.1 多媒體存儲

      多媒體資源包括有:MPEG(相當于GIF),AVI,MP3,WAV,它們無法直接存儲在

      利用指令: gif2mpg 將錄制的GIF轉換成MPEG,并拷貝到 MicroVideo中備用。

      gif2mpg * : 轉換完之后,將第一張圖片添加到 Markdown中;

      gif2mpg + : 只是將MicroVideo中的文件名稱添加到Markdown中;

      gif2mpg . : 將 d:\temp中的 1.avi, 1.MP3, 2.wav 移動到 MicroVideo中,并將文件名稱添加到Markdown中。

      根據解說詞語的長度,截取對應的動圖。通過以下兩步:

      將解說文字拷貝到剪切板;或者拷貝到ClearClipboardBackupString中。

      利用Record命令中的 GIF-》Freeze完成圖片的截取。

      或者利用 Screen 中的 Capture GIF 命令。

      直接執行:采集GIF;

      CONTROL: 采集GIF,并運行 gif2mpeg

      MENU:copy CSDN中的選擇字符,采集GIF 并運行 gif2mpeg.

      修改:在CaptureGIF中,對于Shift 命令,直接返回。

      1.3.2 多媒體使用

      將Markdown中的資源進行拷貝。利用 dopaste 命令完成資源到TEASOFT的轉換。

      將Markdown中的資源進行拷貝。利用 dopaste 命令完成資源到TEASOFT的轉換。

      對于所有的MPEG文件,在使用前利用 mpeg2gif 進行解壓縮,生成BMP文件,便可以在播放的時候形成快速播放。

      面給出進行整理和編輯過程中所用到一些命令。

      2.1 gif2mpg

      將采集到的gif2文件轉換成mpeg,并進行存儲。

      #!/usr/local/bin/python # -*- coding: gbk -*- #============================================================ # GIF2MPG.PY -- by Dr. ZhuoQing 2020-02-21 # # gif2mpg * # Change to microvideo # gif2mgp + # # gif2mpg . # Move d:\temp.avi to MicroVideo # # move 1.wav, 1.mp3 to MicroVideo # # # Note: #============================================================ from head import * import shutil import cv2 import numpy as np import glob from io import BytesIO import win32clipboard #------------------------------------------------------------ csdn_title = '寫文章-CSDN博客' #------------------------------------------------------------ microvideo_dir = r'd:\Nutdisk\MicroVideo' microvideo_flag = 0 numstr = 'GM%d'%(int(time.time())) #------------------------------------------------------------ def send_to_clipboard(clip_type, data): win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardData(clip_type, data) win32clipboard.CloseClipboard() #------------------------------------------------------------ img_array = [] size = (100, 100) mpegfile = [] microvideo_flag = 0 avimove_flag = 0 #------------------------------------------------------------ if len(sys.argv) > 1: if sys.argv[1] == '*': microvideo_flag = 1 if sys.argv[1] == '+': microvideo_flag = 2 if sys.argv[1] == '.': avimove_flag = 1 #------------------------------------------------------------ if microvideo_flag > 0: gifiddim = tspgetgifid() if len(gifiddim) == 0: printf('DOP has no GIF dop .\a') exit() #------------------------------------------------------------ outfile = numstr frameps = 25 #------------------------------------------------------------ for gifid in gifiddim: filedir = tspgetdoppath(gifid) gifpage = tspgetgifpage(gifid) filename = tspgetdopfile(gifid) nameonly, ext = os.path.splitext(filename) for i in range(gifpage): filename = os.path.join(filedir, '%04d%s'%(i, ext)) img = cv2.imread(filename) mpegfile.append(filename) height,width,layers=img.shape size = (width, height) img_array.append(img) tspdeletedop(gifiddim) tsprv(-1) #-------------------------------------------------------- filename = '%s_%d_%d.MPG'%(outfile, width, height) outfilename = os.path.join(microvideo_dir, filename) out = cv2.VideoWriter(outfilename, cv2.VideoWriter_fourcc(*'MPEG'), frameps, size, True) for id,img in enumerate(img_array): out.write(img) tspshowinfor('%d '%id) out.release() if microvideo_flag == 2: clipboard.copy(filename + '\n') tspsendwindowkey(csdn_title, "v", control=1, noreturn=1) else: tspsendwindowkey(csdn_title,"c", control=1, noreturn=1) originstr = clipboard.paste() if len(originstr) > 0: tspsendwindowkey(csdn_title, " ") #---------------------------------------------------- image = Image.open(mpegfile[0]) output = BytesIO() image.convert('RGB').save(output, 'BMP') data = output.getvalue()[14:] output.close() send_to_clipboard(win32clipboard.CF_DIB, data) tspsendwindowkey(csdn_title, 'v', control=1, noreturn=1) for i in range(40): time.sleep(.5) readdata = tspread() if readdata[2] == 1: break if readdata[7] != 0: break if readdata[8] != 0: exit() if readdata[9] != 0: exit() tspsendwindowkey(csdn_title, 'c', control=1, noreturn=1) if clipboard.paste().find('在這里插入圖片描述') >= 0: tspbeep(1500, 200) time.sleep(.25) break printf('\a') for i in range(20): readdata = tspread() if readdata[7] == 0 and readdata[8] == 0 and readdata[9] == 0: break tspbeep(2500, 15) time.sleep(.25) tspsendwindowkey(csdn_title, 'ac', control=1, noreturn=1) pastestr = clipboard.paste().split('![在這里插入圖片描述](') if len(pastestr) < 2: printf("Can not find the ![Insert picture] discriptor !\a") exit() tspsendwindowkey(csdn_title, 'z', control=1) pastestr = pastestr[1].split(')')[0] pastestr = pastestr.split('?')[0] insertstr = '![%s](%s#pic_center =320x)'%(filename,pastestr) clipboard.copy(insertstr+'\n'+originstr) tspsendwindowkey(csdn_title, "v", control=1, noreturn=1) # printf(pastestr) clipboard.copy("") exit() #------------------------------------------------------------ def avi2csdn(filename, newfile): cam = cv2.VideoCapture(filename) ret, frame = cam.read() cv2.imwrite(r'd:\temp.bmp', frame) image = Image.open(r'd:\temp.bmp') output = BytesIO() image.convert('RGB').save(output, 'BMP') data = output.getvalue()[14:] output.close() send_to_clipboard(win32clipboard.CF_DIB, data) tspsendwindowkey(csdn_title, 'v', control=1) cam.release() for i in range(40): time.sleep(.5) readdata = tspread() if readdata[2] == 1: break if readdata[7] != 0: break if readdata[8] != 0: exit() if readdata[9] != 0: exit() tspsendwindowkey(csdn_title, 'c', control=1, noreturn=1) if clipboard.paste().find('在這里插入圖片描述') >= 0: tspbeep(1500, 200) time.sleep(.25) break printf('\a') for i in range(20): readdata = tspread() if readdata[7] == 0 and readdata[8] == 0 and readdata[9] == 0: break tspbeep(2500, 15) time.sleep(.25) tspsendwindowkey(csdn_title, 'ac', control=1, noreturn=1) pastestr = clipboard.paste().split('![在這里插入圖片描述](') if len(pastestr) < 2: printf("Can not find the ![Insert picture] discriptor !\a") exit() tspsendwindowkey(csdn_title, 'z', control=1) pastestr = pastestr[1].split(')')[0] pastestr = pastestr.split('?')[0] insertstr = '![%s](%s#pic_center =200x)\n'%(newfile, pastestr) clipboard.copy(insertstr) tspsendwindowkey(csdn_title, "v", control=1, noreturn=1) os.remove(r'd:\temp.bmp') #------------------------------------------------------------ avifile = r'd:\temp.avi' wavfile = r'd:\temp.wav' mp3file = r'd:\temp.mp3' avinumstr = 'AV%d'%(int(time.time())) wavnumstr = 'WA%d'%(int(time.time())) mp3numstr = 'MP%d'%(int(time.time())) if avimove_flag > 0: if os.path.isfile(avifile): newfile = os.path.join(microvideo_dir, '%s.AVI'%avinumstr) shutil.copy(avifile, newfile) avi2csdn(avifile, '%s.AVI'%avinumstr) os.remove(avifile) if os.path.isfile(wavfile): filename = '%s.WAV'%wavnumstr newfile = os.path.join(microvideo_dir, filename) shutil.copy(wavfile, newfile) clipboard.copy(filename + '\n') printf("Copy file : %s"%filename) tspsendwindowkey(csdn_title, "v", control=1, noreturn=1) os.remove(wavfile) if os.path.isfile(mp3file): filename = '%s.MP3'%mp3numstr newfile = os.path.join(microvideo_dir, filename) shutil.copy(mp3file, newfile) clipboard.copy(filename + '\n') printf("Copy file : %s"%filename) tspsendwindowkey(csdn_title, "v", control=1, noreturn=1) os.remove(mp3file) printf('\a') exit() #------------------------------------------------------------ if len(sys.argv) == 7: filename, ext = os.path.splitext(sys.argv[1]) filedir = os.path.dirname(sys.argv[1]) gifpage = int(sys.argv[2]) outfile = r'd:\temp\%s_%s_%s'%(sys.argv[5], sys.argv[3], sys.argv[4]) framems = int(sys.argv[6]) frameps = int(1000 / framems) printff(filedir, ext, outfile, gifpage, frameps) for i in range(gifpage): filename = os.path.join(filedir, '%04d%s'%(i, ext)) img = cv2.imread(filename) mpegfile.append(filename) height,width,layers=img.shape size = (width, height) img_array.append(img) else: gifiddim = tspgetgifid() if len(gifiddim) == 0: printf('DOP has no GIF dop .\a') exit() #------------------------------------------------------------ outfile = 'GM' if len(sys.argv) > 1: outfile = sys.argv[1] frameps = 25 if len(sys.argv) > 2: framems = int(sys.argv[2]) frameps = int(1000 / framems) #------------------------------------------------------------ for gifid in gifiddim: filedir = tspgetdoppath(gifid) gifpage = tspgetgifpage(gifid) filename = tspgetdopfile(gifid) nameonly, ext = os.path.splitext(filename) for i in range(gifpage): filename = os.path.join(filedir, '%04d%s'%(i, ext)) img = cv2.imread(filename) mpegfile.append(filename) height,width,layers=img.shape size = (width, height) img_array.append(img) #------------------------------------------------------------ #printf(filedir) #img_array = [] #for i in range(gifpage): # filename = os.path.join(filedir, '%04d%s'%(i, ext)) # img = cv2.imread(filename) # height,width,layers=img.shape # size = (width, height) # img_array.append(img) #------------------------------------------------------------ outfilename = r'd:\temp\%s_%d_%d.MPG'%(outfile, width, height) if outfile.find(':') > 0: outfilename = r'%s.MPG'%(outfile) out = cv2.VideoWriter(outfilename, cv2.VideoWriter_fourcc(*'MPEG'), frameps, size, True) #------------------------------------------------------------ if not os.path.isdir(r'd:\temp'): os.mkdir(r'd:\temp') if not os.path.isdir(r'd:\temp\GIF'): os.mkdir(r'd:\temp\GIF') if not os.path.isdir(r'd:\temp\GIF\MPEG'): os.mkdir(r'd:\temp\GIF\MPEG') mpegdir = r'd:\temp\GIF\MPEG' mpegfiledim = os.listdir(mpegdir) for f in mpegfiledim: os.remove(os.path.join(mpegdir, f)) #------------------------------------------------------------ #for i in range(gifpage): # out.write(img_array[i]) # tspshowinfor('%d '%i) for id,img in enumerate(img_array): out.write(img) tspshowinfor('%d '%id) newfile = os.path.join(mpegdir, os.path.basename(mpegfile[id])) # printf(newfile) shutil.copyfile(mpegfile[id], newfile) out.release() #------------------------------------------------------------ printf('\r\nAVI:%s\a'%outfilename) printf('\a') #------------------------------------------------------------ # END OF FILE : GIF2MPG.PY #============================================================

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      125

      126

      127

      128

      129

      130

      131

      132

      133

      134

      135

      136

      137

      138

      139

      140

      141

      142

      143

      144

      145

      146

      147

      148

      149

      150

      151

      152

      153

      154

      155

      156

      157

      158

      159

      160

      161

      162

      163

      164

      165

      166

      167

      168

      169

      170

      171

      172

      173

      174

      175

      176

      177

      178

      179

      180

      181

      182

      183

      184

      185

      186

      187

      188

      189

      190

      191

      192

      193

      194

      195

      196

      197

      198

      199

      200

      201

      202

      203

      204

      205

      206

      207

      208

      209

      210

      211

      212

      213

      214

      215

      216

      217

      218

      219

      220

      221

      222

      223

      224

      225

      226

      227

      228

      229

      230

      231

      232

      233

      234

      235

      236

      237

      238

      239

      240

      241

      242

      243

      244

      245

      246

      247

      248

      249

      250

      251

      252

      253

      254

      255

      256

      257

      258

      259

      260

      261

      262

      263

      264

      265

      266

      267

      268

      269

      270

      271

      272

      273

      274

      275

      276

      277

      278

      279

      280

      281

      282

      283

      284

      285

      286

      287

      288

      289

      290

      291

      292

      293

      294

      295

      296

      297

      298

      299

      300

      301

      302

      303

      304

      305

      306

      307

      308

      309

      310

      311

      312

      313

      314

      315

      316

      317

      318

      319

      320

      321

      322

      323

      324

      325

      326

      327

      328

      329

      330

      331

      332

      333

      334

      335

      336

      337

      338

      339

      340

      341

      342

      343

      344

      345

      346

      347

      348

      349

      350

      351

      352

      353

      354

      355

      356

      357

      358

      359

      360

      361

      362

      363

      364

      365

      366

      367

      368

      369

      370

      371

      372

      373

      374

      375

      376

      377

      378

      379

      380

      381

      382

      2.2 mpeg2gif

      將所有的mpeg文件解壓縮成gif

      #!/usr/local/bin/python # -*- coding: gbk -*- #============================================================ # MPEG2GIF.PY -- by Dr. ZhuoQing 2021-09-16 # # mpeg2gif 0{1} # 1:JPEG, 0:BMP(default) # mpeg2gif c{-} # Clear the origin # mpeg2gif a,g,* # Convert mpeg and gif all # # # Note: #============================================================ from headm import * import cv2 import shutil from PIL import Image import sys #------------------------------------------------------------ jpegflag = 0 cleardirflag = 0 allflag = 0 #------------------------------------------------------------ if len(sys.argv) > 1: for a in sys.argv[1:]: if a.isdigit(): jpegflag = int(a) elif a == 'c' or a == '-': cleardirflag = 1 elif a == 'a' or a == 'g' or a == '*': allflag = 1 #------------------------------------------------------------ dopfile = tspgetdoppath() allfile = list(os.walk(dopfile)) mpgfile = [] giffile = [] for a in allfile: if len(a[2]) > 0: for f in a[2]: ext = f.split('.')[-1] if ext == 'mpg' or ext == 'MPG': if f.count('_') == 2: fname = os.path.join(a[0], f) printf(fname) mpgfile.append(fname) if ext == 'gif' or ext == 'GIF': fname = os.path.join(a[0], f) printf(fname) giffile.append(fname) #------------------------------------------------------------ try: if not os.path.exists(r'd:\temp'): os.makedirs(r'd:\temp') if not os.path.exists(r'd:\temp\GIF'): os.makedirs(r'd:\temp\GIF') except OSError: printf("Error :Creating directory of data.") #------------------------------------------------------------ def mpeg2picture(mpegfile, outdir, jpegflag=0): cam = cv2.VideoCapture(mpegfile) printf(mpegfile) currentframe = 0 while True: ret, frame = cam.read() tspshowinfor('%04d '%currentframe) if ret: if jpegflag == 0: filename = '%04d.BMP'%currentframe else: filename = '%04d.JPG'%currentframe outfile = os.path.join(outdir, filename) cv2.imwrite(outfile, frame) currentframe += 1 else: break cam.release() printf(' ') #------------------------------------------------------------ def gif2picture(gifile, outdir, jpegflag=0): try: im = Image.open(gifile) except IOError: printf("Can not load %s ."%gifile) sys.exit() i = 0 mypalette = im.getpalette() try: while True: im.putpalette(mypalette) new_im = Image.new("RGB", im.size) new_im.paste(im) tspshowinfor('%04d '%i) if jpegflag == 0: savefile = os.path.join(outdir, '%04d.BMP'%i) else: savefile = os.path.join(outdir, '%04d.JPG'%i) new_im.save(savefile) # printf(savefile) i += 1 im.seek(im.tell() + 1) except EOFError: pass # end of sequence # printf(' ') #------------------------------------------------------------ for f in mpgfile: fonly = os.path.basename(f).split('.')[0] printf(fonly) outdir = os.path.join(r'd:\temp\GIF', fonly) if not os.path.exists(outdir): os.makedirs(outdir) mpeg2picture(f, outdir, jpegflag) elif cleardirflag != 0: shutil.rmtree(outdir) printf(outdir) os.makedirs(outdir) mpeg2picture(f, outdir, jpegflag) #------------------------------------------------------------ if allflag != 0: for f in giffile: fonly = os.path.basename(f).split('.')[0] printf(fonly) outdir = os.path.join(r'd:\temp\GIF', fonly) if not os.path.exists(outdir): os.makedirs(outdir) gif2picture(f, outdir, jpegflag) elif cleardirflag != 0: shutil.rmtree(outdir) printf(outdir) os.makedirs(outdir) gif2picture(f, outdir, jpegflag) #------------------------------------------------------------ printf('\a') #------------------------------------------------------------ # END OF FILE : MPEG2GIF.PY #============================================================

      1

      2

      3

      4

      5

      6

      7

      8

      基于CSDN完成TEASOFT的MOOC編輯整理

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      125

      126

      127

      128

      129

      130

      131

      132

      133

      134

      135

      136

      137

      138

      139

      140

      141

      142

      143

      144

      145

      146

      147

      148

      149

      150

      151

      152

      153

      154

      155

      156

      157

      158

      159

      160

      161

      162

      163

      164

      165

      166

      2.3 dopaste

      CSDN 資源到 TEASOFT Action添加。

      #!/usr/local/bin/python # -*- coding: gbk -*- #============================================================ # DOPASTE.PY -- by Dr. ZhuoQing 2021-10-07 # # Note: #============================================================ from head import * import urllib.request from PIL import Image csdn_title = '寫文章-CSDN博客' #------------------------------------------------------------ outdir = r'd:\temp' microvideo_dir = r'd:\Nutdisk\MicroVideo' #------------------------------------------------------------ strall = clipboard.paste().split('\n') tspsendwindowkey(csdn_title, "c", control=1, noreturn=1) csdnall = clipboard.paste() if len(csdnall) > 0: strall = csdnall.split('\n') #------------------------------------------------------------ for s in strall: s = s.strip(' ') if s[:1] == '>': continue # if len(s) == 0: continue endid = s.find('#pic_center') startid = s.find('![](') mpgid = s.find('.MPG]') aviid = s.find('.AVI]') #-------------------------------------------------------- printf(mpgid) if endid >= 0 and startid >= 0: picurl = s[startid+4:endid] ext = picurl.split('.')[-1] filename = picurl.split('/')[-1].split('.')[0] outfile = '' if ext == 'gif': outfile = os.path.join(outdir, '%s.gif'%filename) urllib.request.urlretrieve(picurl, outfile) tspacceptfile(outfile, 99) printf(outfile) os.remove(outfile) elif ext == 'png': outfile = os.path.join(outdir, '%s.png'%filename) urllib.request.urlretrieve(picurl, outfile) im1 = Image.open(outfile) if len(im1.split()) == 4: r,g,b,a = im1.split() im1 = Image.merge('RGB', (r,g,b)) newfile = os.path.join(outdir, '%s.JPG'%filename) im1.save(newfile) os.remove(outfile) tspacceptfile(newfile, 0) os.remove(newfile) printf(newfile) else: continue elif s[:2] == '![' and mpgid > 0: s = s[2:mpgid+4] mpegfile = os.path.join(microvideo_dir, s) tspacceptfile(mpegfile, 99) printf(mpegfile) elif s[:2] == '![' and aviid > 0: s = s[2:aviid+4] avifile = os.path.join(microvideo_dir, s) tspacceptfile(avifile, 99) printf(avifile) else: if s.find('.MPG') >= 0 and s.find('#') < 0: mpegfile = os.path.join(microvideo_dir, s) tspacceptfile(mpegfile, 99) printf(mpegfile) elif s.find('.MP3') >= 0 and s.find('#') < 0: audiofile = os.path.join(microvideo_dir, s) tspacceptfile(audiofile, 99) printf(audiofile) elif s.find('.WAV') >= 0 and s.find('#') < 0: audiofile = os.path.join(microvideo_dir, s) tspacceptfile(audiofile, 99) printf(audiofile) else: if s.find('http:') < 0: tspcopystring(s) printf(s) #------------------------------------------------------------ printf('\a') #------------------------------------------------------------ # END OF FILE : DOPASTE.PY #============================================================

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      CSDN平臺中的Markdown編輯器具有多媒體(很可惜沒有音頻,視頻存儲)的存儲編輯能力。這樣對于TEASOFT軟件制作視頻所需要的文字、圖片、多媒體等文件,在CSDN的Markdown文件以及Nutdisk中的MicroVideo目錄的聯合存儲。便可以對視頻文檔的準備進行網絡聯合制作,加速制作過程。

      ■ 相關文獻鏈接:

      TEASOFT教學軟件

      微視頻制作方法與要素

      Markdown 視頻

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:迷茫:工程師有哪些發展路徑
      下一篇:GaussDB架構師老朱:一朝“入坑”數據庫,從此踏上“不歸路”
      相關文章
      亚洲欧洲免费视频| 亚洲五月六月丁香激情| 亚洲人成影院在线| 亚洲AV日韩综合一区尤物| 久久亚洲AV永久无码精品| 亚洲精品国产自在久久 | 亚洲欧美综合精品成人导航| 亚洲最大免费视频网| 亚洲国产人成在线观看69网站 | 亚洲AV无码久久精品成人| 伊人久久综在合线亚洲91| 久久亚洲国产成人精品无码区| 性色av极品无码专区亚洲 | 亚洲a∨无码精品色午夜| 亚洲av成人一区二区三区在线观看 | 韩国亚洲伊人久久综合影院| 亚洲AV日韩AV一区二区三曲| 极品色天使在线婷婷天堂亚洲| 亚洲国产精品日韩av不卡在线| 亚洲日韩精品无码AV海量| 亚洲欧美成aⅴ人在线观看| 亚洲精品无码久久久久A片苍井空| 在线观看亚洲AV日韩A∨| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲国产精品一区| 亚洲色av性色在线观无码| 亚洲人成在线精品| 日韩亚洲不卡在线视频中文字幕在线观看| 国产精品亚洲精品青青青| 亚洲一久久久久久久久| 婷婷国产偷v国产偷v亚洲| 精品亚洲一区二区三区在线观看| 亚洲女久久久噜噜噜熟女| 亚洲av之男人的天堂网站| 久久亚洲日韩看片无码| 亚洲免费闲人蜜桃| 亚洲精品国产高清在线观看| 亚洲国产高清在线一区二区三区| 中国亚洲女人69内射少妇| 亚洲精品国产精品乱码在线观看 | 亚洲乱码精品久久久久..|