2014-09-06 2 views
0

VNC 클라이언트를 직접 만들고 Linux에서 시스템 디스플레이 메모리에 직접 액세스하는 방법을 알고 싶습니다. 그래서 그것을 소켓을 통해 보내거나 로컬 파일에 저장할 수 있습니다.Java 프로그램에서 시스템 디스플레이 메모리/프레임 버퍼에 액세스하는 방법은 무엇입니까?

나는 이것을 연구 한 한 가지 방법으로 높은 프레임 속도 (스크린 샷)로 화면을 캡처하고 RAW 형식으로 변환하고 압축하여 ArrayList에 저장하는 방법을 발견했습니다.

그러나이 방법은 리소스가 너무 무거웠습니다. 그래서 대안을 찾고있었습니다.

다른 방법 (예 : Java 또는 Python 만 사용)이 있는지 알려주십시오.

답변

0

직접 리눅스

당신은 할 수 없습니다에 시스템 디스플레이 메모리에 액세스 할 수 있습니다. Linux는 메모리로 보호되는 가상 주소 공간 운영 체제입니다. 오, 커널은 /dev에있는 어떤 노드를 통해 그래픽 메모리에 접근 할 수있게 해줍니다.

또한 Linux에서는 일반적으로 X11과 같은 디스플레이 서버 (또는 향후 Wayland 프로토콜을 기반으로하는 서버)가 실행 중이며 시스템 그래픽 메모리가 전혀 없을 수도 있습니다.

나는 조금 연구를했으며이를 달성하기위한 한 가지 방법은 높은 프레임 속도 (스크린 샷)로 화면을 캡처하고 RAW 형식으로 변환 한 다음 압축하여 ArrayList에 저장하는 것입니다.

정확히 어떻게했는지. 디스플레이 시스템의 방법을 사용하여 화면을 캡처하십시오. 이 작업을 수행하는 유일한 방법은 신뢰할 수 있습니다. 변환이나 압축이 병목 현상이라면 그래픽 메모리에서도 페치하는 것이 좋습니다.

+0

고맙습니다. 나는 스크린 샷과 함께 갈 것이라고 생각한다 :) – skwalker

관련 문제