Как сделать растровое изображение текущего указателя мыши? - PullRequest
2 голосов
/ 11 января 2011

Я бы хотел написать инструмент для скриншотов на Python. Прямо сейчас я изучаю, как я могу сделать. У меня есть скрипт, создающий скриншот с использованием Win32 API, например, здесь , но я хочу включить указатель мыши на скриншоте.

С win32gui.GetCursorInfo () я получаю его состояние (показано / скрыто), его дескриптор и его положение. Моя цель - использовать дескриптор для доступа к фактическому растровому изображению курсора, скопировать его и добавить его на мой снимок экрана с правильными координатами. Тем не менее, я не могу найти ни одного документа, говорящего о том, что я могу сделать с этой ручкой, как только получу ее.

Я думаю, что мне, возможно, придется сделать сам снимок экрана, то есть получить DC курсора, создать совместимое с ним растровое изображение и скопировать в него с помощью BitBlt. Я на правильном пути?

Ответы [ 3 ]

3 голосов
/ 11 января 2011

Включает ли python win32 api DrawIconEx:

http://msdn.microsoft.com/en-us/library/ms648065%28v=vs.85%29.aspx

вам нужно создать прорисовываемый контекст для записи, а затем передать его и дескриптор курсора ...

(или обычный DrawIcon)

0 голосов
/ 11 января 2011

Как только вы получите дескриптор значка курсора из GetCursorInfo, вы можете нарисовать его с DrawIcon или DrawIconEx, который, как я полагаю, поддерживает используемый вами модуль API Win32.Вам нужно будет создать DC для растрового изображения скриншота, чтобы отобразить значок, да, но я не думаю, что вам нужно будет создавать DC для самой иконки курсора - DrawIcon должно быть достаточно.

0 голосов
/ 11 января 2011

Другой вариант - использовать библиотеку изображений Python ( PIL ), с которой вы можете легко редактировать растровое изображение.(гораздо проще, чем на самом деле с помощью Win32 API.)

вы можете использовать ImageGrab и ImageDraw

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...