XpmCreateBuffer(3) libXpm functions XpmCreateBuffer(3)

# [NAME](#NAME)

XpmCreateBuffer - create an XPM Buffer

# [SYNOPSIS](#SYNOPSIS)

```
int XpmCreateBufferFromImage(Display *display , char **buffer_return,
XImage *image, XImage *shapeimage, XpmAttributes *attributes);
```

```
int XpmCreateBufferFromPixmap(Display *display, char **buffer_return,
Pixmap pixmap, Pixmap shapemask, XpmAttributes *attributes);
```

```
int XpmCreateBufferFromXpmImage(char **buffer_return, XpmImage *image,
XpmInfo *info);
```

# [ARGUMENTS](#ARGUMENTS)

[*display*](#display)

Specifies the connection to the X server.

[*buffer\_return*](#buffer_return)

Returns the buffer which is created.

[*image*](#image)

Specifies the image.

[*shapeimage*](#shapeimage)

Specifies the shape mask image.

[*attributes*](#attributes)

Specifies the location of a structure containing information (or NULL).

[*info*](#info)

Specifies the location of a structure to get possible information (or NULL).

# [DESCRIPTION](#DESCRIPTION)

## [XpmCreateBufferFromPixmap](#XpmCreateBufferFromPixmap)

**XpmCreateBufferFromPixmap**() creates an XPM buffer from a Pixmap. The **XpmCreateBufferFromPixmap**() function works as [**XpmWriteFileFromPixmap**(3)](/man/os/libxpm/XpmWriteFileFromPixmap.3), it just calls **XpmCreateBufferFromImage**() instead of [**XpmWriteFileFromImage**(3)](/man/os/libxpm/XpmWriteFileFromImage.3). Once again, the caller should free the buffer using [**XpmFree**(3)](/man/os/libxpm/XpmFree.3) when finished.

As a convenience, the [**XpmReadFileToBuffer**(3)](/man/os/libxpm/XpmReadFileToBuffer.3) and [**XpmWriteFileFromBuffer**(3)](/man/os/libxpm/XpmWriteFileFromBuffer.3) functions are provided to copy a file to a buffer and to write a file from a buffer. Thus for instance one may decide to use **XpmCreateBufferFromPixmap**(), [**XpmWriteFileFromBuffer**(3)](/man/os/libxpm/XpmWriteFileFromBuffer.3), and [**XpmFree**(3)](/man/os/libxpm/XpmFree.3) instead of [**XpmWriteFileFromPixmap**(3)](/man/os/libxpm/XpmWriteFileFromPixmap.3). On some systems this may lead to a performance improvement, since the processing will be performed in memory, but it uses more memory.

## [XpmCreateBufferFromImage](#XpmCreateBufferFromImage)

The **XpmCreateBufferFromImage**() function works as [**XpmWriteFileFromImage**(3)](/man/os/libxpm/XpmWriteFileFromImage.3), it just writes to a malloc’ed buffer instead of to a file. The caller should free the buffer using [**XpmFree**(3)](/man/os/libxpm/XpmFree.3) when finished.

## [XpmCreateBufferFromXpmImage.](#XpmCreateBufferFromXpmImage.)

To create an XPM buffer from an XpmImage, use **XpmCreateBufferFromXpmImage**(). The **XpmCreateBufferFromXpmImage**() function writes out the given image to a single block malloc’ed buffer in XPM format. If insufficient working storage is allocated, it returns **XpmNoMemory**, and returns **XpmSuccess** on success. If the passed XpmInfo structure pointer is not NULL, **XpmCreateBufferFromXpmImage**() looks for the following attributes: XpmComments, XpmExtensions, and XpmHotspot, and writes the related information out as well. The caller should free the buffer using [**XpmFree**(3)](/man/os/libxpm/XpmFree.3) when finished.

# [SEE ALSO](#SEE_ALSO)

[**XpmFree**(3)](/man/os/libxpm/XpmFree.3), [**XpmWriteFileFromBuffer**(3)](/man/os/libxpm/XpmWriteFileFromBuffer.3), [**XpmWriteFileFromImage**(3)](/man/os/libxpm/XpmWriteFileFromImage.3), [**XpmWriteFileFromPixmap**(3)](/man/os/libxpm/XpmWriteFileFromPixmap.3)

libXpm 3.5.19 X Version 11

---

Document: XpmCreateBuffer(3) from libxpm 3.5.19-r5 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxpm.git
