Вопрос

Кто-нибудь знает, как использовать BitBlt () от Win32 с использованием Ruby?Похоже, вам нужно использовать destination DC (контекст устройства), и как Ruby может справиться с этим?Я использую GetPixel(), и это действительно медленно даже для получения 100 пикселей (занимает около 10 секунд).Спасибо.

Это было полезно?

Решение

Второй другой пост Карла:используйте скриншот win32 http://github.com/jarmo/win32screenshot

Другие советы

Как насчет того, чтобы написать весь ваш код обработки изображений на C ++ в виде исполняемого файла Win32 и запустить его как отдельный процесс или вызвать его из Ruby, используя Win32API класс?Имеет смысл сделать это таким образом вместо того, чтобы писать cludge на Ruby, который никогда не будет работать так же хорошо.

Я просто хотел бы отметить, что я наблюдаю нечто подобное.GetPixel работает чрезвычайно медленно в Vista.Я определил, что это тот случай, когда вы используете эту штуку Aero.Если вы установите тему рабочего стола на одну из "Классических" настроек, это снова будет быстро.И оценка ОПЕРАЦИИ в ~ 10 секунд не ошибочна, хотите верьте, хотите нет.Это действительно чрезвычайно медленно.

Я тоже ищу БитБлт в Ruby.Я ожидаю, что мне нужно будет разобраться в этом / написать это, но надеялся, что кто-то другой уже опубликовал пример.

Я бы не зашел так далеко, как Эд;скорее всего, вы хотите выполнять только некоторые относительно простые и обыденные действия, которые выполнял бы обычный графический интерфейс.Для этого такие библиотеки уже существуют, и их не нужно писать.

Одним из примеров может быть wxRuby ( вксруби ).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top