고기
C 또는 C++에서 색상 표 RGB 값을 직접 읽을 수있는 방법이 있습니까? 특히 흥미로운 점은 xterm (및 다른 사람들)이 최대 256 개의 터미널 색상을 정의하는 데 사용하는 확장 색상 공간입니다.콘솔 색상 표의 RGB 값 읽기
감자
점에서이 사건은 내가 (또는 직접 C에서, \e]4;3;rgb:cc/78/33\e\\
처럼, ANSI 이스케이프 시퀀스를 사용하여) 내 자신의 색상을 정의 할 수 있다는 것입니다하지만 난에 (내가 그들을 다시 정의하기 전에 사용자 색상을 저장해야 드물게 이미 색상을 재정의 한 경우) 프로그램을 마칠 때 복원 할 수 있습니다. Clobbering 사용자 설정이 좋지 않습니다.
지금 당장 클라이언트 측에서 ANSI 이스케이프 시퀀스를 사용하려고합니다. 하지만 어떻게하면 색상을 얻지 못하는지 알기 때문에 대신 C 또는 C++에서이 작업을 수행하기 시작합니다.
솔루션은 네이티브 확장 (기본적으로 c 또는 C++ 코드 포함)이 포함 된 루비 보석으로 작성되며 주요 대상은 OS X 및 두 번째 Linux 환경 임에도 불구하고 크로스 플랫폼 솔루션을 얻으려고합니다. .. 나는 내가 색상 팔레트의 코드 포인트 원하는 색상을 정의 할 수있는 지점에 입수했습니다 내 초기 실험에서
Sause
. 또한 기본 시스템 색상을 쉽게 복원 할 수 있습니다 (ANSI 표준이므로). ANSI 이스케이프 코드에서이 작업을 수행하는 방법에 대해 높게 평가했지만 아무 것도 발견하지 못했습니다. 나는이 어딘가에 메모리에 보관하고
지금까지 의견의 정보를 요약하는 위치, 색상을 읽는 것은 쉽게해야 찾을 수있는 방법 ...
디저트가있는 경우 있는지 파악 :
이 작업을 일관되게 수행하는 유일한 방법은 █ 문자 화면을 다른 색상으로 인쇄하고 그 색상을 잡는 것입니다. 이 프로젝트는 세 가지 주요 OS에 대한 크로스 플랫폼으로되어 있고 Linux는 현재 사용자가 3 명의 디스플레이 관리자를 사용하고 있기 때문에 Windows에 두 개 (7-8 개)의 사용이 가능하므로 그 시간과 시간을 상상할 수 있습니다. :)
내 "솔루션"™은 사용자의 색상을 그냥 긁어 모으는 것입니다. (시스템 기본값 이외의 것이 있으면 ... 매우 드문 경우입니다). 나는 사용자가 시스템 기본값에 만족하지 않으면 어떤 색을 복원해야하는지 플러그인에게 알릴 수있는 설정 파일을 제공 할 것이다. 실용적이고 지루하지만, 그것은 나를 다시가는 :)의 취득
어리석은 질문을하지만 일부 SO 주위를 둘러 보았다 있습니다 관련 질문? [예를 들어] (http://stackoverflow.com/questions/2659932/how-to-read-the-screen-pixels),이 하나는 지역 또는 전체 화면을 가져 오는 방법에 대한 여러 가지 변형을 설명합니다. [: GetPixel] (http://stackoverflow.com/a/2970056/645128)과 같은 것을 사용하면 효과가 있을까? – ryyker
나는 SO 및 SuperUser 등에서 찾을 수있는 모든 관련 질문을 읽었습니다. 여기서 문제는 콘솔 컨텍스트에서 픽셀 값을 얻는 것이 그래픽 환경을 사용하지 않아도되는 옵션이 아닐 수 있다는 것입니다. 내가 정말로 원했던 것은 이스케이프 시퀀스 또는 메모리의 색상 표에 직접 액세스하는 방법이었습니다. 솔기가 가능하지는 않습니다./ –