自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解放雙手,提高生產(chǎn)力,看我如何用 Python 實現(xiàn)自動化剪視頻

開發(fā) 后端 自動化
人類和動物最本質(zhì)的區(qū)別就是人類懂的制造并使用工具,這是由上古時代一直延續(xù)至今的基因所決定的。

[[408546]]

本文轉載自微信公眾號「Python技術」,作者派森醬。轉載本文請聯(lián)系Python技術公眾號。

人類和動物最本質(zhì)的區(qū)別就是人類懂的制造并使用工具,這是由上古時代一直延續(xù)至今的基因所決定的。

前段時間朋友的一個業(yè)務需要大量的原創(chuàng)短視頻,問我是否可以幫忙弄下,我了解了具體需求之后發(fā)現(xiàn)不需要很高質(zhì)量的內(nèi)容,操作也不是很復雜,完全可以通過 Python 實現(xiàn)自動化操作,也是就把這個事給應承了下來。

我們知道 PyAutoGUI 是一個通過編程方式來控制鼠標和鍵盤的 Python 庫,那么就從它身上下手了。

安裝

Win 和 macOS 的安裝命令有所不同。

  1. ## windows 
  2. py -m pip install pyautogui 
  3.  
  4. ## macOS 
  5. python3 -m pip install pyautogui 

屏幕位置

屏幕上的位置由笛卡爾坐標表示,X 坐標從左上角的 0 開始,向右增加,與數(shù)學不同,Y 坐標從左上角 0 開始,向下增加。

因此左上角的像素位于坐標(0,0),如果你的屏幕分辨率為 1920 x 1080,則右下角的像素將為(1919, 1079),因為像素是從坐標 0 開始的。屏幕分辨率大小可以通過 size() 函數(shù)獲得,當前鼠標位置則可以通過 position() 函數(shù)獲得。

  1. 0,0       X increases --> 
  2. +---------------------------+ 
  3. |                           | Y increases 
  4. |                           |     | 
  5. |   1920 x 1080 screen      |     | 
  6. |                           |     V 
  7. |                           | 
  8. |                           | 
  9. +---------------------------+ 1919, 1079 
  10. import pyautogui 
  11.  
  12. x, y = pyautogui.position() 
  13. print(x, y) 
  14.  
  15. x, y = pyautogui.size() 
  16. print(x, y) 
  17.  
  18. ## 輸出結果 
  19. 545 437 
  20. 1440 900 

鼠標移動

鼠標的移動則分為絕對坐標移動和相對坐標移動。

比如你想將鼠標移動到坐標(100,100)處,直接調(diào)用 moveTo 函數(shù)即可。

  1. import pyautogui 
  2.  
  3. # 將鼠標移動至(100,200)坐標處 
  4. pyautogui.moveTo(100, 200)    
  5.  
  6. # 將鼠標移動至(100,500 坐標處 
  7. pyautogui.moveTo(None, 500)   
  8.  
  9. # 將鼠標移動至(600,500)坐標處 
  10. pyautogui.moveTo(600, None) 
  11.  
  12. # 將鼠標移動至(100,200)坐標處,該移動過程是一個持續(xù)性過程,耗時 2 秒 
  13. pyautogui.moveTo(100, 200, 2) 

而 move 函數(shù)則是簡單的相對移動。

  1. import pyautogui 
  2.  
  3. # 將鼠標移動至(100,200)坐標處 
  4. pyautogui.moveTo(100, 200) 
  5.  
  6. # 將鼠標向下移動 50 像素 
  7. pyautogui.move(0, 50) 
  8.  
  9. # 將鼠標向左移動 30 像素 
  10. pyautogui.move(-30, 0) 
  11.  
  12. # 將鼠標向左移動 30 像素 
  13. pyautogui.move(-30, None) 

鼠標拖拽

和鼠標移動相比,鼠標拖拽同樣分為絕對坐標拖拽和相對坐標拖拽。同樣 dragTo 函數(shù)使用絕對坐標,drag 使用相對坐標。

  1. import pyautogui 
  2.  
  3. # 按住鼠標左鍵將目標拖拽至(100,200)坐標處 
  4. pyautogui.dragTo(100, 200, button='left')      
  5.  
  6. # 按住鼠標左鍵將目標拖拽至(100,200)坐標處,該移動過程是一個持續(xù)性過程,耗時 2 秒 
  7. pyautogui.dragTo(100, 200, 2, button='left')   
  8.  
  9. # 按住鼠標右鍵將目標向右移動 30 個像素,該移動過程是一個持續(xù)性過程,耗時 2 秒 
  10. pyautogui.drag(30, 0, 2, button='right'

鼠標點擊

我們可以通過 click() 函數(shù)模擬鼠標單擊。

  1. import pyautogui 
  2.  
  3. # 在當前位置單擊左鍵 
  4. pyautogui.click() 
  5.  
  6. # 將鼠標移動至(100,200)坐標處,然后單擊左鍵 
  7. # 但是這個方法有點奇怪,有時候會失靈,可以使用 moveTo + click 
  8. pyautogui.click(x=100, y=200) 
  9.  
  10. # 在當前位置單雙擊左鍵 
  11. pyautogui.doubleClick() 

控制鍵盤

鍵盤控制一般常用的就是輸入字符串,按下某個按鍵以及組合鍵。

  1. import pyautogui 
  2.  
  3. # 輸入 “Hello World” 
  4. pyautogui.write('Hello world!'
  5.  
  6. # 按下 enter / F1 鍵  
  7. pyautogui.press('enter'
  8. pyautogui.press('f1'
  9.  
  10. # 組合按鍵 command + a 
  11. pyautogui.hotkey('command''a'

制作視頻

有了以上的基礎,就可以開始我們的視頻制作了,這次使用的是剪映軟件。

這里你需要熟悉一下剪映的操作步驟,基本分為三塊:將指定圖片拖入視頻軌道、調(diào)整視頻時長、導出。

最終效果如下:

原視頻

  1. # coding=utf-8 
  2. import time 
  3. import pyautogui 
  4.  
  5. # 將圖片拖入軌道 
  6. def drag_img_to_track(): 
  7.     # 選中圖片 
  8.     pyautogui.moveTo(170, 270) 
  9.     pyautogui.doubleClick() 
  10.     # 拖拽圖片至軌道 
  11.     pyautogui.dragTo(120, 600, 1, button='left'
  12.  
  13. # 調(diào)整視頻時長 
  14. def drag_img_to_3_min(): 
  15.     # 選中軌道中的第一張圖 
  16.     pyautogui.moveTo(125, 600) 
  17.     pyautogui.click() 
  18.     # 拖拽至第三分鐘 
  19.     pyautogui.moveTo(135, 600) 
  20.     pyautogui.dragTo(700, 600, 1, button='left'
  21.  
  22. # 刪除舊的素材 
  23. def delete_top_img(): 
  24.     # 刪除軌道中的第二張圖片 
  25.     pyautogui.moveTo(300, 160) 
  26.     pyautogui.doubleClick() 
  27.     pyautogui.press("backspace"
  28.  
  29.     # enter yes 
  30.     pyautogui.moveTo(650, 470) 
  31.     time.sleep(0.5) 
  32.     pyautogui.click() 
  33.  
  34. # 導出 
  35. def export(name): 
  36.     pyautogui.moveTo(126, 600) 
  37.     pyautogui.click() 
  38.  
  39.     pyautogui.hotkey('command''e'
  40.     pyautogui.write(name
  41.     time.sleep(1) 
  42.     pyautogui.moveTo(800, 393) 
  43.     pyautogui.click() 
  44.     time.sleep(20) 
  45.     pyautogui.click() 
  46.  
  47. index = 0 
  48. count = 2 
  49. while index < count
  50.     drag_img_to_track() 
  51.     drag_img_to_3_min() 
  52.     delete_top_img() 
  53.     export(str(index)) 
  54.     time.sleep(2) 
  55.     index += 1 
  56.     print("end..." + str(index)) 

總結

今天我們通過 pyautogui 實現(xiàn)了全自動制作視頻,我們只需要將素材導入到剪映中即可。

 

由于 gif 大小限制,只錄制了一小部分,你可以通過調(diào)整主函數(shù)中的 count 值來控制制作視頻的個數(shù)。

 

責任編輯:武曉燕 來源: Python技術
相關推薦

2023-06-01 15:53:13

物聯(lián)網(wǎng)自動化

2023-05-23 16:51:21

2024-05-23 15:20:36

SQLModelPython

2020-10-28 10:25:11

云端云計算云遷移

2023-04-06 09:53:21

Harbor企業(yè)級服務

2013-04-26 16:14:09

視頻會議MCU統(tǒng)一通信

2020-12-07 06:22:05

MyBatisPlus開發(fā)MP

2022-01-10 10:45:16

大數(shù)據(jù)大數(shù)據(jù)動向數(shù)據(jù)技術

2023-02-13 08:34:26

Linux鍵盤快捷鍵

2024-04-01 14:24:05

數(shù)字信任人工智能

2018-08-31 09:55:38

Ansible網(wǎng)絡自動化

2014-12-14 14:43:31

中軟JointForce

2022-09-27 21:26:35

CSSTransform

2020-05-25 14:32:42

Python電子郵件自動化

2020-01-06 09:00:34

容器CRD安全

2023-10-31 18:01:26

安全掃描代碼

2010-07-28 15:02:52

Compuwareworkbench

2023-07-07 14:51:34

2018-04-18 10:04:56

數(shù)字化 CIO
點贊
收藏

51CTO技術棧公眾號