Я пытаюсь автоматизировать скриншоты веб-сайтов на моем (безголовом) сервере следующим образом:

Запустите виртуальный X-сервер:

Xfvb :1 -pixdepths 16,24,32 -screen 1 1080x1440x24 -nolisten tcp

Сначала я попробовал сделать скриншоты с кутикапами:

DISPLAY=:1 cutycapt --url=http://myurl --out=screenshot.png

Это работает с полными цветами, но движок webkit слишком стар, чтобы поддерживать наш CSS, поэтому веб-страница не отображается должным образом.

Поэтому я попробовал Firefox и ImageMagick:

nohup firefox http://myurl &
sleep 4
import -display :1 -window root screenshot.png

К сожалению, полученное изображение имеет только 16? 256? цвета. Определенно не достаточно.

Поэтому я попробовал xwd:

xwd -root -display :1 -out screenshot.xwd

Еще не повезло, все равно всего 16 цветов. Есть идеи?

1 ответ1

0

Я нашел решение. По некоторым причинам, полные цвета работают только тогда, когда на дисплее работает Xfvb:0. Так что это работает:

# Run Xfvb
Xfvb :0 -screen 0 1080x1440x24 -nolisten tcp &

export DISPLAY=:0

# Start Firefox.
nohup firefox http://fipla.spiff.xyz:8000/calendar &
FFPID=$!
sleep 3

# Resize the window.
WINDOW_ID=`xdotool search --onlyvisible firefox`
echo Window id is $WINDOW_ID
xdotool windowmove $WINDOW_ID 0 0
xdotool windowsize $WINDOW_ID 1080 1440
sleep 1

# Take screenshot.
import -window root -crop 1067x1380+0+72 $DIR/screenshot1.png

kill $FFPID
rm nohup.out

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .