XImage
Xlibs struktur för en bild som ligger i klientens minne, till skillnad från en pixmap som bor i servern, och den väg varje pixel tar när ett program vill visa något det räknat fram självt.
En pixmap går bara att rita i med serverns egna anrop. Vill programmet skriva pixlarna direkt, som en bildvisare eller en videospelare, behöver det en buffert på sin egen sida: en XImage. Strukturen beskriver bredd, höjd, djup, byteordning, bitar per pixel, byte per rad och de tre färgmaskerna, plus en pekare till själva datan. Formatet är ZPixmap med en hel pixel i taget, eller de äldre plan-för-plan-varianterna XYPixmap och XYBitmap. XPutImage skickar bufferten till ett fönster eller en pixmap, XGetImage hämtar hem skärminnehåll åt andra hållet.
Fällan är att layouten måste matcha serverns visual, inte klientens antaganden. Ett program som skrev 24-bitars pixlar till en 16-bitars skärm, eller fick byteordningen fel mellan en SPARC och en PC, visade psykedeliska färger i stället för en bild. XGetPixel och XPutPixel finns för den som vill slippa räkna själv, men de är långsamma. Över en socket kostar varje XPutImage en kopia, vilket är varför MIT-SHM har XShmCreateImage som lägger bufferten i delat minne. Filformatet från xwd är i allt väsentligt ett sådant huvud följt av datan.