ฉันกำลังมองหาวิธีที่จะจับภาพหน้าจอของทั้งหน้าจอจากบรรทัดคำสั่ง ระบบปฏิบัติการคือ Windows บางสิ่งเช่นนี้
C:\>screenshot.exe screen1.png
ฉันกำลังมองหาวิธีที่จะจับภาพหน้าจอของทั้งหน้าจอจากบรรทัดคำสั่ง ระบบปฏิบัติการคือ Windows บางสิ่งเช่นนี้
C:\>screenshot.exe screen1.png
คำตอบ:
ดาวน์โหลดImageMagick มีเครื่องมือในการจัดการอิมเมจสำหรับบรรทัดคำสั่งจำนวนมาก การนำเข้าช่วยให้คุณสามารถจับภาพหน้าจอบางส่วนหรือทั้งหมดและบันทึกภาพเป็นไฟล์ ตัวอย่างเช่นหากต้องการบันทึกทั้งหน้าจอเป็น jpeg:
import -window root screen.jpeg
หากคุณต้องการใช้เมาส์คลิกภายในหน้าต่างหรือเลือกพื้นที่หน้าจอ & บันทึก aa png เพียงใช้:
import box.png
คำถามนี้ได้รับคำตอบแล้ว แต่ฉันคิดว่าฉันควรจะทำเช่นนี้ NirCmd (ฟรีแวร์เศร้าไม่ใช่โอเพ่นซอร์ส) สามารถจับภาพหน้าจอจากบรรทัดคำสั่งร่วมกับฟังก์ชั่นอื่น ๆ อีกมากมายที่สามารถทำได้
การรันสิ่งนี้จากบรรทัดคำสั่งในไดเร็กทอรีของ nircmd.exe หรือถ้าคุณคัดลอกไปยังโฟลเดอร์ system32 ของคุณ:
nircmd.exe savescreenshot screen1.png
ทำในสิ่งที่คุณต้องการ คุณสามารถหน่วงเวลาได้เช่นนี้:
nircmd.exe cmdwait 2000 savescreenshot screen1.png
ที่จะรอ 2000 มิลลิวินาที (2 วินาที) แล้วจับภาพและบันทึกภาพหน้าจอ
Nircmd
ไม่รองรับหลายหน้าจอ มันจะจับภาพหน้าจอหลักเท่านั้น
nircmd2
ลิงค์ดาวน์โหลดตั้งอยู่ที่ด้านล่างสุดของหน้าnirsoft.net/utils/nircmd.html คุณสามารถใช้ลิงก์ดาวน์โหลดนี้โดยตรง: nirsoft.net/utils/nircmd.zip
ก็สามารถทำได้โดยไม่ต้องเครื่องมือภายนอก (คุณเพียงแค่ต้องติดตั้งกรอบ net ซึ่งมีการติดตั้งโดยค่าเริ่มต้นทุกอย่างจาก Vista และด้านบน) - screenCapture.bat มันเป็นโปรแกรม C # ที่คอมไพล์แล้วและคุณสามารถบันทึกผลลัพธ์ในรูปแบบไม่กี่รูปแบบและจับเฉพาะหน้าต่างที่ใช้งานหรือทั้งหน้าจอ:
screenCapture- captures the screen or the active window and saves it to a file
Usage:
screenCapture filename.format [WindowTitle]
filename - the file where the screen capture will be saved
format - Bmp,Emf,Exif,Gif,Icon,Jpeg,Png,Tiff and are supported - default is bmp
WindowTitle - instead of capturing the whole screen will capture the only a window with the given title if there's such
ตัวอย่าง:
call screenCapture notepad.jpg "Notepad"
call screenCapture screen.png
คำแนะนำอื่น ๆ ใช้ได้ - คุณสามารถลอง MiniCap ได้ฟรีและมีคุณสมบัติอื่น ๆ เช่นการตั้งชื่อไฟล์ที่ยืดหยุ่นและโหมดจับภาพที่แตกต่างกัน: http://www.donationcoder.com/Software/Mouser/MiniCap/index.html
(ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียน MiniCap)
คุณสามารถเรียกใช้ผ่านทางบรรทัดคำสั่ง คุณสามารถระบุหน้าต่างที่จะจับภาพ - เช่นหน้าต่างทั้งหมดหรือเพียงแค่หน้าต่างปัจจุบัน / ที่ใช้งานอยู่ - และคุณยังสามารถทำการแก้ไขพื้นฐานบางอย่างเช่นการเหลาการครอบตัดหรือการปรับขนาดรูปภาพ
นี่คือตัวเลือกบรรทัดคำสั่งที่น่าสนใจเป็นพิเศษคือ
i_view32 /capture=0 /convert=wholescreen.png
คุณสามารถลองใช้เครื่องมือboxcutter :
usage: boxcutter [OPTIONS] [OUTPUT_FILENAME]
Saves a bitmap screenshot to 'OUTPUT_FILENAME' if given. Otherwise,
screenshot is stored on clipboard by default.
OPTIONS
-c, --coords X1,Y1,X2,Y2 capture the rectange (X1,Y1)-(X2,Y2)
-f, --fullscreen fullscreen screenshot
-v, --version display version information
-h, --help display help message
Screenshot-cmdใช้สกรีนช็อตของเดสก์ท็อปหรือหน้าต่างที่เลือกตามชื่อหน้าต่าง นอกจากนี้ยังเป็นไปได้ที่จะเลือกสี่เหลี่ยมผืนผ้าที่จะจับ ผลลัพธ์ถูกเก็บเป็นไฟล์ png (อัพเดทล่าสุดในปี 2554)
ตัวเลือก: -wt WINDOW_TITLE เลือกหน้าต่างที่มีชื่อนี้ ชื่อต้องไม่มีช่องว่าง ("") - ว่า WINDOW_HANDLE เลือกหน้าต่างตามที่จับ (Representad เป็นสตริงฐานสิบ - fe "0012079E") -rc ด้านล่างขวาด้านล่าง แหล่งเพาะปลูก หากไม่ได้ระบุ WINDOW_TITLE (0,0) อยู่ที่มุมบนสุดของเดสก์ท็อป อื่นถ้า WINDOW_TITLE สร้างหน้าต่างเดสก์ท็อป (0,0) คือมุมซ้ายบน -o FILENAME ชื่อไฟล์ที่ส่งออกถ้าไม่มีภาพจะถูกบันทึกไว้ เป็น "screenshot.png" ในไดเรกทอรีการทำงานปัจจุบัน -h แสดงข้อมูลความช่วยเหลือนี้
แรงบันดาลใจจาก: http://blog.mozilla.com/ted/2009/02/05/command-line-scurrency-tool-for-windows/
คุณสามารถใช้Pillow
ไลบรารีหลามเพื่อจับภาพหน้าจอของจอภาพหลัก
pip install -user pillow
from PIL import ImageGrab
img = ImageGrab.grab()
img.save('screenshot.bmp')
คุณสามารถใช้ผลิตภัณฑ์เชิงพาณิชย์snapitเพื่อจับภาพหน้าจอที่ยอดเยี่ยมจากบรรทัดคำสั่ง