---
name: "XpmCreatePixmap"
section: "3"
platform: "linux"
package: "libxpm"
version: "3.5.20-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XpmCreatePixmap"
---

# XpmCreatePixmap(3)

create a pixmap

## NAME

XpmCreatePixmap - create a pixmap

## SYNOPSIS

```
int XpmCreatePixmapFromData(Display *display, Drawable d,
char **data, Pixmap *pixmap_return, Pixmap *shapemask_return,
XpmAttributes *attributes);
int XpmCreatePixmapFromBuffer(Display *display, Drawable d,
char *buffer, Pixmap *pixmap_return, Pixmap *shapemask_return,
XpmAttributes *attributes);
int XpmCreatePixmapFromXpmImage(Display *display, Drawable d,
XpmImage *image, Pixmap *pixmap_return, Pixmap *shapemask_return,
XpmAttributes *attributes);
```

## ARGUMENTS

- *display*

  Specifies the connection to the X server.

- *d*

  Specifies which screen the pixmap is created on.

- *buffer*

  Specifies the location of the buffer.

- *pixmap\_return*

  Returns the pixmap which is created if the color None.

- *shapemask\_return*

  Returns the shape mask pixmap which is created if the color None is used.

- *attributes*

  Specifies the location of a structure to get and store information.

- *image*

  Specifies the XpmImage.

## DESCRIPTION

### XpmCreatePixmapFromData

To create a Pixmap from an XPM data, use **XpmCreatePixmapFromData**(). The **XpmCreatePixmapFromData**() function creates X images using [**XpmCreateImageFromData**(3)](/XpmCreateImageFromData/3.md) and thus returns the same errors. In addition on success it then creates the related pixmaps, using [**XPutImage**(3)](/XPutImage/3.md), which are returned to *pixmap\_return* and *shapemask\_return* if not NULL, and finally destroys the created images using [**XDestroyImage**(3)](/XDestroyImage/3.md). Do not forget to free the returned pixmaps, the colors, and possibly the data returned into the XpmAttributes structure when done.

### XpmCreatePixmapFromBuffer

To create a Pixmap from an XPM buffer, use **XpmCreatePixmapFromBuffer**(). The **XpmCreatePixmapFromBuffer**() function works the same way as [**XpmReadFileToPixmap**(3)](/XpmReadFileToPixmap/3.md), it just calls [**XpmCreateImageFromBuffer**(3)](/XpmCreateImageFromBuffer/3.md) instead of [**XpmReadFileToImage**(3)](/XpmReadFileToImage/3.md).

### XpmCreatePixmapFromXpmImage

**XpmCreatePixmapFromXpmImage**() creates X images calling [**XpmCreateImageFromXpmImage**(3)](/XpmCreateImageFromXpmImage/3.md) with the given XpmImage and XpmAttributes, then it creates the related pixmaps which are returned to *pixmap\_return* and *shapemask\_return* using [**XPutImage**(3)](/XPutImage/3.md). Finally it destroys the X images with [**XDestroyImage**(3)](/XDestroyImage/3.md). When finished the caller must free the pixmaps using [**XFreePixmap**(3)](/XFreePixmap/3.md), the colors using [**XFreeColors**(3)](/XFreeColors/3.md) or the application equivalent function when the standard Xlib functions are not used, and possibly the data returned into the XpmAttributes using [**XpmFreeAttributes**(3)](/XpmFreeAttributes/3.md).

## SEE ALSO

[**XpmCreateImageFromData**(3)](/XpmCreateImageFromData/3.md), [**XpmCreateImageFromXpmImage**(3)](/XpmCreateImageFromXpmImage/3.md), [**XpmFreeAttributes**(3)](/XpmFreeAttributes/3.md), [**XpmReadFileToPixmap**(3)](/XpmReadFileToPixmap/3.md)
