화면 상단 패널의 png를 캡처할 때 색상 문제

화면 상단 패널의 png를 캡처할 때 색상 문제

창의 명령을 사용하여 bash 스크립트에서 창을 png로 캡처하고 싶습니다.ID. 이 경우 창은 상단 패널입니다. 사용된 색상은 gnome-screenshot본 이미지대로 정확합니다... (본 이미지는 아래 이미지와 사이즈가 다르므로 하단의 검은색 선은 무시해주세요)

여기에 이미지 설명을 입력하세요.

그런데 캡쳐패널을 거쳐가보니 import,또는 xwd+ convert, 나는 다음과 같은 이미지를 얻습니다 ..

여기에 이미지 설명을 입력하세요.

왜 이런 색상 차이가 나는 걸까요?

import둘 다 convert패키지에 속합니다 imagemagick...

우분투 저장소에서 창을 캡처할 수 있는 다른 항목을 찾지 못했습니다.ID...그래서 막혔어요. ( gnome-screenshot해당 기능이 없습니다.)...여기서 무슨 일이 일어나고 있는지 아는 것이 좋을 것입니다(예:투명한이미지, 저는 그것에 대해 거의 알지 못합니다.)...하지만 어쨌든, 그것은 단지 추천일 뿐입니다해결책캡처 유틸리티는 성공할 수 있습니다. 해당 유틸리티를 통과할 수 있어야 합니다.ID.   

다음은 이미지 캡처를 만들고 보는 방법에 대한 예입니다.

import -window "$(wmctrl -l |grep "Top Expanded Edge Panel" |awk '{print $1}')" screen.png  
display screen.png

답변1

콘솔에서 화면을 만들기 위한 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?

관련 정보