Нет ничего, что делает это в Xlib или протоколе X.Вот несколько способов сделать это:
Лучший подход во многом зависит от деталейВаш проект. В целом, примитивы рисования Xlib по современным стандартам практически бесполезны, поэтому вам действительно нужно подключить библиотеку более высокого уровня. Cairo, вероятно, является выбором по умолчанию, он широко используется в материалах с открытым исходным кодом.
Кодированиесделать это в общем и правильном для Xlib довольно сложно ... проблема в том, что вам приходится иметь дело с любой визуальной и цветовой картой, которую могут иметь ваши пользователи. Если вы знаете точное аппаратное и программное обеспечение, которое будут использовать ваши пользователи, это может бытьвторостепенная вещь, в противном случае это может быть своего рода головной болью. Существует много преобразований для записи между 16-битной и 24-битной и 32-битной глубиной и разным порядком байтов и т. д. GTK + и CaУ меня есть код преобразования, поэтому, если вы можете использовать его, вы можете написать растягивающую процедуру в фиксированном формате, например ARGB32, и вам не придется иметь дело со всеми остальными.