Utilities
擷取螢幕頂部面板的 png 時的顏色問題
我想使用視窗的ID從 bash 腳本中將視窗擷取為 png 。在這種情況下,視窗是頂部面板。使用
gnome-screenshot
顏色是真實的,根據這張圖…(這張圖和下圖大小不一樣,所以忽略底部的暗線)但是,當我通過或+擷取面板時
import
,我得到以下圖像..xwd``convert
為什麼我會出現這種色差?
import
並且convert
都屬於imagemagick
包…我在 Ubuntu 儲存庫中沒有找到可以通過其ID擷取視窗的任何其他內容……所以我被卡住了。(
gnome-screenshot
沒有該功能)…很高興知道這裡發生了什麼(例如,與透明圖像有關,我對此知之甚少)…但無論如何,只是解決方法擷取實用程序的建議可能會解決問題……它必須能夠通過其ID擷取視窗。這是我如何製作和查看圖像擷取的範例。
import -window "$(wmctrl -l |grep "Top Expanded Edge Panel" |awk '{print $1}')" screen.png display screen.png
為了從控制台製作螢幕,還有
scrot
. 因為它不是imagemagick
包裝中的工具,所以我認為顏色可能會沒問題。有一個問題 -
scrot
只能截取全屏截圖,所以我們將截取全屏截圖,然後剪切出我們需要的視窗區域。當然,為了剪掉它,我們不會使用包中的imagemagick
工具netpbm
。#!/bin/bash unset x y w h eval $(xwininfo -id $(wmctrl -l |grep "Top Expanded Edge Panel" |awk '{print $1}') | sed -ne "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p" \ -e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p" \ -e "s/^ \+Width: \+\([0-9]\+\).*/w=\1/p" \ -e "s/^ \+Height: \+\([0-9]\+\).*/h=\1/p" ) scrot scrot.pnm < scrot.pnm pnmcut -left $x -top $y -width $w -height $h | pnmtopng > scrot_cropped.png display scrot_cropped.png
您能否檢查是否
scrot
可以製作顏色不變的螢幕截圖?如果是,該腳本應該完成工作並獲取您想要的視窗螢幕……受@fred 回答啟發的腳本:如何準確找到視窗尺寸和位置,包括裝飾?和@JRW:用於切片圖像的Oneliner?