วิธีคัดลอกรูปภาพไปยังคลิปบอร์ดจากไฟล์โดยใช้บรรทัดคำสั่ง?


23

ฉันต้องการเขียนสคริปต์เพื่อใช้ไฟล์รูปภาพปรับขนาด 50% และวางไว้บนคลิปบอร์ดเพื่อให้สามารถวางได้อย่างง่ายดาย สิ่งที่ฉันติดอยู่คือการวางรูปภาพบนคลิปบอร์ด

ฉันรู้จัก xclip แต่ AFAICS ที่เกี่ยวข้องกับข้อความเท่านั้น เป็นไปได้หรือไม่ที่จะมีภาพไว้บนคลิปบอร์ดโดยไม่ต้องมีแอพพลิเคชั่นที่ทำให้มันนั่งอยู่รอบ ๆ ? - ขอโทษฉันไม่แน่ใจว่าภายในของคลิปบอร์ดทำงานอย่างไร!

แก้ไข

ขอบคุณคำตอบของ Florian ด้านล่างฉันสามารถบรรลุสิ่งที่ฉันต้องการซึ่งก็คือการจับภาพหน้าจอและปรับขนาดให้กว้างสูงสุด 600px โดยอัตโนมัติ (เช่นการวางอีเมล) ปัญหาเพิ่มเติมที่ฉันเผชิญคือธันเดอร์เบิร์ดจะไม่ยอมรับimage/pngจากคลิปบอร์ด ฉันได้รับมันโดยแปลงtext/htmlเป็นdataurl นี่คือรหัสของฉันในกรณีที่ทุกคนพบว่ามีประโยชน์:

#!/bin/bash
TMP=/tmp/screenshot.png
function screenshotfail {
  notify-send -u low -i image "Screenshot failed."
  exit
}
# Take screenshot
gnome-screenshot -a -b -p -f "$TMP" || screenshotfail
# Ensure it's max 600px wide
mogrify -resize '>600x' "$TMP" || screenshotfail
# optimise the png if optipng is installed.
which optipng >/dev/null && optipng "$TMP"

# Copy to clipboard.
#
# This is what does not work for Thunderbird:
#   xclip -selection clipboard -t image/png <"$TMP" || screenshotfail
# But this does:
echo "<img src='data:image/png;base64,"$(base64 -w0 "$TMP")"' />" | \
  xclip -selection clipboard -t text/html || screenshotfail

# Remove the temp file.
rm -f "$TMP"

# Notify user.
notify-send -u low -i image "600px screenshot copied to clipboard"

ดูเหมือนซ้ำ: unix.stackexchange.com/questions/30093/…
Champ

คำตอบ:


32

ใช้-tตัวเลือกเพื่อระบุประเภทเนื้อหาเช่น

xclip -selection clipboard -t image/png -i example.png

-tไม่ทำงานบน xclip รุ่น 0.12 ของฉัน
Irfan

@ Power-Inside: ทำงานให้ฉันด้วย xclip 0.12 วันที่ 16.10
Florian Diesch

1
เพื่อให้ทำงานได้ในวันที่ 17.10 ฉันต้องทำสิ่งนี้:xclip -selection clipboard -t image/png -o > example.png
Anake

ทำงานได้กับ xclip เวอร์ชั่น 0.12 บน Ubuntu 16.04.5 LTS ของฉัน
แชมป์

ใช้งานได้เฉพาะกับสภาพแวดล้อม GTK เช่น Gnome ไม่ใช่สำหรับสภาพแวดล้อม Qt เช่น KDE / plasma หรือ LXQT
noraj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.