• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

kolor piksela na ekranie w c++ (linux)

Object Storage Arubacloud
0 głosów
435 wizyt
pytanie zadane 20 lipca 2020 w C i C++ przez KumberTwo Dyskutant (8,270 p.)
Witam. Chciałbym trochę zagłębić się w temat kolorów pikseli w c++. Wpadłem na pomysł, żeby napisać program, który wyświetla w konsoli RGB (lub coś innego) koloru, nad którym leży kursor. Znalazłem kilka sposobów, lecz wszystkie wykorzystują bibliotekę windows.h a ja niestety pracuję na linuxie. Jest jakiś sposób, by to zrobić? Najlepiej byłoby gdybym nie musiał instalować żadnych bibliotek, bo kiedyś już się siłowałem z SFML'em i w końcu musiałem się poddać.

1 odpowiedź

+3 głosów
odpowiedź 20 lipca 2020 przez j23 Mędrzec (194,920 p.)
wybrane 20 lipca 2020 przez KumberTwo
 
Najlepsza
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <unistd.h>

int main()
{
    int x = 500, y = 500; // przykładowa pozycja

    Display *display = XOpenDisplay(NULL);
    Window wnd = XDefaultRootWindow(display);

    while (1) {
        XImage *image = XGetImage(display, wnd, x, y, 1, 1, AllPlanes, XYPixmap);
        printf("%lu\n", XGetPixel(image, 0, 0));
        XDestroyImage(image);
        sleep(1);
    }

    XCloseDisplay(display); // pro forma
}

Co do wyciągania poszczególnych składowych koloru, poszukaj w dokumentacji XLib.

komentarz 20 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Dzięki
komentarz 21 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)

@j23,
 Niestety, kompilator wywala błędy: "fatal error: X11/Xutil.h: Nie ma takiego pliku ani katalogu" i "fatal error: X11/lib.h: Nie ma takiego pliku ani katalogu". Czy muszę to jakoś instalować? Jeśli tak, to jak? Nigdy nie zagłębiałem się w żadną bibliotekę poza stl'em, więc nie mam w tym doświadczenia.

 

komentarz 21 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Dobra, z tym już się uporałem. Teraz wyświetlane są błędy: undefined reference to 'XOpenDisplay' 'XDefaultRootWindow' 'XGetImage', Tylko oczywiście wszystko w osobnych errorach.
komentarz 21 lipca 2020 przez j23 Mędrzec (194,920 p.)

Dodaj bibliotekę X11.

komentarz 21 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
W jaki sposób? Już zrobiłem sudo apt-get install libx11-dev i po tym zaczęło rozpoznawać te biblioteki.
komentarz 21 lipca 2020 przez j23 Mędrzec (194,920 p.)

Nie. Dodaj do projektu. Jak kompilujesz ten przykład z terminala, to dodaj opcję -lX11.

komentarz 21 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Programuję w c::b i próbuję dodać tę bibliotekę poprzez: Project -> Build options -> Linker settings -> add ale gdy wejdę do folderu /usr/lib/X11 to w żadnym z podrzędnych katalogów nie ma pliku o żądanym rozszerzeniu.
komentarz 21 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Dobra, znowu sobie poradziłem. Plik był w lokalizacji: /usr/lib/x86_64-linux-gnu/libX11.so  Czy program, który podałeś w odpowiedzi powinien co sekundę wypisywać liczbę? Jeśli tak to super i dziękuję za pomoc.
komentarz 21 lipca 2020 przez j23 Mędrzec (194,920 p.)

Biblioteka leży w standardowej lokalizacji, znanej kompilatorowi, zatem nie musisz podawać pełnej ścieżki do niej, wystarczy sama nazwa.

Czy program, który podałeś (...)

Tak.

Podobne pytania

+2 głosów
1 odpowiedź 181 wizyt
pytanie zadane 19 marca 2017 w C i C++ przez aspoka Mądrala (5,290 p.)
0 głosów
3 odpowiedzi 4,229 wizyt
pytanie zadane 17 września 2016 w C i C++ przez Owczarek Niemiecki Obywatel (1,570 p.)
0 głosów
1 odpowiedź 558 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...