ข้ามไปยังเนื้อหา

คัดลอกโค้ดจากภาพหน้าจอบน Mac โดยไม่ต้องพิมพ์ใหม่

โดย Eduard Bruch ผู้พัฒนา Optic · อัปเดตเมื่อ

หากต้องการคัดลอกโค้ดจากภาพหน้าจอบน Mac ให้เปิดรูป เลือกโค้ดด้วยเครื่องมือ OCR แล้ววางข้อความลงในตัวแก้ไขของคุณ จากนั้นอ่านเทียบกับรูปหนึ่งรอบ เพราะ OCR อาจสับสนตัวอักษรอย่าง l กับ 1 หรือ O กับ 0

คำตอบสั้น ๆ: สำหรับรูปในพรีวิวหรือรูปภาพ ลอง Live Text ก่อน สำหรับโค้ดในหน้าต่างแอป วิดีโอ หรือแชทใดก็ได้ ตัวเลือกของผมคือ Optic แอปแถบเมนูที่คัดลอกข้อความในพื้นที่ใดก็ได้ที่คุณลากครอบบนหน้าจอ (4.99 ดอลลาร์สหรัฐ (ซื้อครั้งเดียว) บน Mac App Store)

คำเปิดเผย: ผมสร้าง Optic

ทำไมการพิมพ์โค้ดใหม่จึงผิดพลาด

โค้ดเข้มงวด เครื่องหมายคำพูดผิดหนึ่งตัว วงเล็บหาย หรือ l กับ 1 สับสน ก็ทำให้คำสั่งพังได้ และข้อผิดพลาดมักไม่ชี้ไปที่สาเหตุจริง การพิมพ์บรรทัด docker run ยาว ๆ หรือคำสั่ง curl ที่มีหลายแฟลกใหม่ คือจุดที่ความพลาดเหล่านี้เกิดขึ้น

โค้ดมักไปอยู่ในรูปภาพอยู่เสมอ: ตัวอย่างโค้ดที่โพสต์เป็นภาพหน้าจอสวย ๆ บนโซเชียลมีเดีย บทเรียนที่แสดงตัวอย่างเป็นรูป หน้าวิกิเก่าที่เต็มไปด้วยภาพจับเทอร์มินัล และโค้ดที่ส่งต่อเป็นภาพหน้าจอใน Slack หรือ Teams

ลอง Live Text ก่อน

Live Text ของ macOS ทำงานในที่ที่ Apple รองรับ: รูปภาพในพรีวิว รูปภาพ Quick Look และ Safari เปิดภาพหน้าจอในพรีวิว เลื่อนตัวชี้ไปบนโค้ดจนเปลี่ยนเป็นเคอร์เซอร์ข้อความ เลือก แล้วกด Command-C

Live Text ใช้ไม่ได้กับหน้าต่างแอปทั่วไป วิดีโอคอล หรือข้อความที่วาดอยู่ภายในอินเทอร์เฟซของแอป หากโค้ดอยู่ในโปรแกรมเล่นวิดีโอ รีโมตเดสก์ท็อป หรือการแชร์หน้าจอ คุณต้องใช้เครื่องมือ OCR หน้าจอ

คัดลอกโค้ดด้วย Optic

Optic อ่านทุกสิ่งที่อยู่บนหน้าจอภายในกรอบที่คุณวาด Optic ไม่เปิดไฟล์รูปภาพเอง ดังนั้นเปิดภาพหน้าจอในพรีวิว เบราว์เซอร์ หรือโปรแกรมดูใดก็ได้ก่อน

  1. คลิกไอคอน Optic ในแถบเมนู
  2. เลือกจับภาพข้อความ
  3. ลากกรอบครอบโค้ด เว้นหมายเลขบรรทัดไว้หากรูปมี
  4. วางลงในตัวแก้ไขด้วย Command-V

การยืนยันเล็ก ๆ "คัดลอกไปยังคลิปบอร์ดแล้ว" จะปรากฏเมื่อข้อความพร้อม

เปิดโหมดโค้ด

ในการตั้งค่าของ Optic โหมดโค้ด (รักษาการเยื้อง) มีไว้สำหรับงานนี้ รักษาการเยื้องของแต่ละบรรทัดตามตำแหน่งของข้อความในรูป และปิดการแก้ไขภาษา เพื่อไม่ให้ตัวรู้จำ "แก้" ชื่อตัวแปรให้กลายเป็นคำในพจนานุกรม เปิดไว้ขณะคัดลอกโค้ดและปิดสำหรับข้อความร้อยแก้วปกติ

การขึ้นบรรทัดใหม่ถูกคงไว้โดยค่าเริ่มต้น (คงไว้) ซึ่งเหมาะกับโค้ด ตัวเลือกอื่น ลบ และ รวมอัจฉริยะ มีไว้สำหรับย่อหน้า

ตรวจสอบก่อนรัน

การรู้จำทำงานบน Mac ของคุณด้วยการรู้จำข้อความของ Apple Vision ทำได้ดีกับข้อความที่ชัดเจนและมีคอนทราสต์สูง แต่ก็ยังเป็น OCR ก่อนวางคำสั่งลงเทอร์มินัล ให้เปรียบเทียบกับรูป โดยเฉพาะ:

  • เครื่องหมายคำพูดและแบ็กทิก
  • l, 1, I และ O, 0
  • ยัติภังค์และขีดยาวในแฟลก
  • การเยื้องใน Python หรือ YAML

ข้อความที่ใหญ่กว่ารู้จำได้ดีกว่า ดังนั้นขยายรูปก่อนลากหากตัวอักษรเล็ก

หลายตัวอย่างโค้ดติดกัน

ทุกการจับภาพไปอยู่ในประวัติของ Optic ในป๊อปโอเวอร์แถบเมนู ซึ่งเก็บ 20 การจับภาพล่าสุดพร้อมภาพย่อ หากบทเรียนแสดงห้าขั้นตอน ให้จับภาพทีละขั้นตามลำดับ แล้วคัดลอกแต่ละรายการอีกครั้งจากประวัติเมื่อต้องการ ประวัติอยู่บน Mac ของคุณ

จุดที่ Optic ไม่เหมาะ

  • ไม่เปิดไฟล์รูปภาพหรือ PDF โค้ดต้องมองเห็นได้บนหน้าจอ
  • ทำงานกับการเลือกทีละครั้ง ไม่ประมวลผลโฟลเดอร์ของภาพหน้าจอหรือเอกสารทั้งฉบับ
  • คัดลอกข้อความธรรมดา ไม่รักษาสีของไวยากรณ์และไม่ตรวจจับภาษาโปรแกรม
  • ต้องใช้สิทธิ์การบันทึกหน้าจอของ macOS เพื่ออ่านหน้าจอ

สำหรับเรื่องนี้เพิ่มเติม ดู OCR สำหรับตัวอย่างโค้ดบน Mac และ วิธีคัดลอกข้อความจากทุกอย่างบนหน้าจอ หากคุณกำลังเปรียบเทียบแอป มีสรุปรวม แอป OCR หน้าจอสำหรับ Mac

คำถามที่พบบ่อย

Mac คัดลอกโค้ดจากรูปภาพได้โดยไม่ใช้แอปเพิ่มหรือไม่?

ได้ในหลายกรณี Live Text ในพรีวิว รูปภาพ Quick Look และ Safari ให้คุณเลือกข้อความในรูปภาพ แต่ใช้ไม่ได้กับวิดีโอ การแชร์หน้าจอ หรือข้อความภายในหน้าต่างของแอปอื่น สำหรับโค้ดที่อื่นบนหน้าจอ ตัวเลือกของผมคือ Optic พร้อมเปิดโหมดโค้ด

Optic รักษาการเยื้องของโค้ดหรือไม่?

เมื่อเปิดโหมดโค้ดในการตั้งค่า Optic รักษาการเยื้องของแต่ละบรรทัดตามตำแหน่งในรูป ตรวจผลลัพธ์สำหรับ Python และ YAML ที่การเยื้องสำคัญ

Optic ต้องใช้การเชื่อมต่ออินเทอร์เน็ตหรือไม่?

ไม่ต้อง การรู้จำข้อความทำงานบน Mac และแอปไม่มีการเข้าถึงเครือข่าย

ทำไมโค้ดที่วางมีตัวอักษรผิด?

OCR อาจสับสนตัวอักษรที่หน้าตาคล้ายกัน เช่น l กับ 1 ขยายข้อความเล็กก่อนจับภาพ ใช้โหมดโค้ด และเปรียบเทียบผลลัพธ์กับรูป

รับ Optic บน Mac App Store · ข้อเท็จจริงทั้งหมดของ Optic