---
name: "SDL_PremultiplyAlpha"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_PremultiplyAlpha"
---

# SDL\_PremultiplyAlpha(3)

Premultiply the alpha on a block of pixels.

## NAME

SDL\_PremultiplyAlpha - Premultiply the alpha on a block of pixels.

## HEADER FILE

Defined in SDL3/SDL\_surface.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**bool SDL\_PremultiplyAlpha(int width, int height, SDL\_PixelFormat src\_format, const void \*src, int src\_pitch, SDL\_PixelFormat dst\_format, void \*dst, int dst\_pitch, bool linear);**

## DESCRIPTION

This is safe to use with src == dst, but not for other overlapping areas.

## FUNCTION PARAMETERS

- *width*

  the width of the block to convert, in pixels.

- *height*

  the height of the block to convert, in pixels.

- *src\_format*

  an  **SDL\_PixelFormat**\
    value of the **src** pixels format.

- *src*

  a pointer to the source pixels.

- *src\_pitch*

  the pitch of the source pixels, in bytes.

- *dst\_format*

  an  **SDL\_PixelFormat**\
    value of the **dst** pixels format.

- *dst*

  a pointer to be filled in with premultiplied pixel data.

- *dst\_pitch*

  the pitch of the destination pixels, in bytes.

- *linear*

  true to convert from sRGB to linear space for the alpha multiplication, false to do multiplication in sRGB space.

## RETURN VALUE

Returns true on success or false on failure; call

**SDL\_GetError** () for more information.

## THREAD SAFETY

The same destination pixels should not be used from two threads at once. It is safe to use the same source pixels from multiple threads.

## AVAILABILITY

This function is available since SDL 3.2.0.
