2017-01-28 17 views
1

Я использую cefpython внутри PySide на Python 2.7. Чтобы создать передовые 3D-переходы между div, я должен разрезать div в, например. 20 частей, которые я могу анимировать отдельно. Я не нашел никакого способа сделать это «изначально», поэтому мне нужно смоделировать раскол, сделав снимок экрана определенного элемента в dom (я также мог бы сделать снимок экрана для всего dom и вырезать требуемый элемент по координатам.).cefpython, чтобы снять снимок экрана с текущего html (необязательно: конкретные элементы)

Как я могу сделать снимок экрана для определенного div в моей DOM или как я могу сделать снимок экрана всей видимой части веб-страницы в cefpython и PySide.

Функции JavaScript часто просто визуализируют html в изображение, но мне нужно абсолютно реальное изображение, так как пользователь не должен знать, что анимация создается из изображения вместо реального div.

Есть ли простой способ захвата элемента (или всей видимой в данный момент части) веб-страницы с использованием cefpython и PySide (или JavaScript и HTML)?

(Кстати: Cefpython встроить браузер хрома в PySide.)

+0

Вы посмотрели на [этот вопрос] (http://stackoverflow.com/questions/6887183/how-to-take-screenshot-of-a-div-with -javascript? RQ = 1)? – Pointy

+0

Вау! Я искал часы в Интернете и не видел этого решения ?! (Возможно, неверные ключевые слова). Я это попробую. Спасибо. – fameman

+0

Извините, но это не соответствует моей проблеме. __I Мне нужно совершенно аналогичное представление моей веб-страницы в картине - я уже сказал, что рендеринг не всегда корректен .__ – fameman

ответ

1

Вы можете оказать содержимое окна, которое встраивает браузер в растровое изображение. В pyqt/pyside вы можете отображать QWidget в QImage. Например, Google «qwidget to qimage»: https://www.google.com/search?q=qwidget+to+qimage

+0

Вау. Легкий, быстрый, точный. Спасибо! – fameman