Utilities

擷取螢幕頂部面板的 png 時的顏色問題

  • September 2, 2012

我想使用視窗的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?

引用自:https://unix.stackexchange.com/questions/16189