Skip to content

API Image

Eduard Gushchin edited this page Jun 12, 2026 · 2 revisions

SDL_image API

Back to API Reference

Image loading, saving, animation, and metadata functions.

  • Functions: 102
  • Functions with XML docs: 102

Image

Image.AddAnimationEncoderFrame

public static bool AddAnimationEncoderFrame(IntPtr encoder, IntPtr surface, ulong duration);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_AddAnimationEncoderFrame(IMG_AnimationEncoder *encoder, SDL_Surface *surface, Uint64 duration);

Add a frame to an animation encoder.

Parameters

Name Type Description
encoder IntPtr the receiving images.
surface IntPtr the surface to add as the next frame in the animation.
duration ulong the duration of the frame, usually in milliseconds but can be other units if the Image.Props.AnimationEncoderCreateTimebaseDenominatorNumber property is set when creating the encoder.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.AddAnimationEncoderFrame(System.IntPtr,System.IntPtr,System.UInt64)

Image.CloseAnimationDecoder

public static bool CloseAnimationDecoder(IntPtr decoder);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_CloseAnimationDecoder(IMG_AnimationDecoder *decoder);

Close an animation decoder, finishing any decoding. Calling this function frees the animation decoder, and returns the final status of the decoding process.

Parameters

Name Type Description
decoder IntPtr the decoder to close.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CloseAnimationDecoder(System.IntPtr)

Image.CloseAnimationEncoder

public static bool CloseAnimationEncoder(IntPtr encoder);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_CloseAnimationEncoder(IMG_AnimationEncoder *encoder);

Close an animation encoder, finishing any encoding. Calling this function frees the animation encoder, and returns the final status of the encoding process.

Parameters

Name Type Description
encoder IntPtr the encoder to close.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CloseAnimationEncoder(System.IntPtr)

Image.CreateAnimatedCursor

public static IntPtr CreateAnimatedCursor(IntPtr anim, int hotX, int hotY);

SDL declaration

extern SDL_DECLSPEC SDL_Cursor * SDLCALL IMG_CreateAnimatedCursor(IMG_Animation *anim, int hot_x, int hot_y);

Create an animated cursor from an animation.

Parameters

Name Type Description
anim IntPtr an animation to use to create an animated cursor.
hotX int the x position of the cursor hot spot.
hotY int the y position of the cursor hot spot.

Returns

the new cursor on success or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimatedCursor(System.IntPtr,System.Int32,System.Int32)

Image.CreateAnimationDecoder

public static IntPtr CreateAnimationDecoder(string file);

SDL declaration

extern SDL_DECLSPEC IMG_AnimationDecoder * SDLCALL IMG_CreateAnimationDecoder(const char *file);

Create a decoder to read a series of images from a file. These animation types are currently supported:

  • ANI
  • APNG
  • AVIFS
  • GIF
  • WEBP The file type is determined from the file extension, e.g. "file.webp" will be decoded using WEBP.

Parameters

Name Type Description
file string the file containing a series of images.

Returns

a new IMG_AnimationDecoder, or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimationDecoder(System.String)

Image.CreateAnimationDecoderIO

public static IntPtr CreateAnimationDecoderIO(IntPtr src, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC IMG_AnimationDecoder * SDLCALL IMG_CreateAnimationDecoder_IO(SDL_IOStream *src, bool closeio, const char *type);

Create a decoder to read a series of images from an IOStream. These animation types are currently supported:

  • ANI
  • APNG
  • AVIFS
  • GIF
  • WEBP If closeio is true, src will be closed before returning if this function fails, or when the animation decoder is closed if this function succeeds.

Parameters

Name Type Description
src IntPtr an SDL_IOStream containing a series of images.
closeio bool true to close the SDL_IOStream when done, false to leave it open.
type string a filename extension that represent this data ("WEBP", etc).

Returns

a new IMG_AnimationDecoder, or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimationDecoderIO(System.IntPtr,System.Boolean,System.String)

Image.CreateAnimationDecoderWithProperties

public static IntPtr CreateAnimationDecoderWithProperties(uint props);

Create an animation decoder with the specified properties. These animation types are currently supported:

  • ANI

  • APNG

  • AVIFS

  • GIF

  • WEBP These are the supported properties:

  • Image.Props.AnimationDecoderCreateFilenameString: the file to load, if an SDL_IOStream isn't being used. This is required if Image.Props.AnimationDecoderCreateIOStreamPointer isn't set.

  • Image.Props.AnimationDecoderCreateIOStreamPointer: an SDL_IOStream containing a series of images. This should not be closed until the animation decoder is closed. This is required if Image.Props.AnimationDecoderCreateFilenameString isn't set.

  • Image.Props.AnimationDecoderCreateIOStreamAutoCloseBoolean: true if closing the animation decoder should also close the associated SDL_IOStream.

  • Image.Props.AnimationDecoderCreateTypeString: the input file type, e.g. "webp", defaults to the file extension if Image.Props.AnimationDecoderCreateFilenameString is set.

Parameters

Name Type Description
props uint the properties of the animation decoder.

Returns

a new IMG_AnimationDecoder, or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimationDecoderWithProperties(System.UInt32)

Image.CreateAnimationEncoder

public static IntPtr CreateAnimationEncoder(string file);

SDL declaration

extern SDL_DECLSPEC IMG_AnimationEncoder * SDLCALL IMG_CreateAnimationEncoder(const char *file);

Create an encoder to save a series of images to a file. These animation types are currently supported:

  • ANI
  • APNG
  • AVIFS
  • GIF
  • WEBP The file type is determined from the file extension, e.g. "file.webp" will be encoded using WEBP.

Parameters

Name Type Description
file string the file where the animation will be saved.

Returns

a new IMG_AnimationEncoder, or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimationEncoder(System.String)

Image.CreateAnimationEncoderIO

public static IntPtr CreateAnimationEncoderIO(IntPtr dst, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC IMG_AnimationEncoder * SDLCALL IMG_CreateAnimationEncoder_IO(SDL_IOStream *dst, bool closeio, const char *type);

Create an encoder to save a series of images to an IOStream. These animation types are currently supported:

  • ANI
  • APNG
  • AVIFS
  • GIF
  • WEBP If closeio is true, dst will be closed before returning if this function fails, or when the animation encoder is closed if this function succeeds.

Parameters

Name Type Description
dst IntPtr dst an SDL_IOStream that will be used to save the stream.
closeio bool true to close the SDL_IOStream when done, false to leave it open.
type string a filename extension that represent this data ("WEBP", etc).

Returns

a new IMG_AnimationEncoder, or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimationEncoderIO(System.IntPtr,System.Boolean,System.String)

Image.CreateAnimationEncoderWithProperties

public static IntPtr CreateAnimationEncoderWithProperties(uint props);

SDL declaration

extern SDL_DECLSPEC IMG_AnimationEncoder * SDLCALL IMG_CreateAnimationEncoderWithProperties(SDL_PropertiesID props);

Create an animation encoder with the specified properties. These animation types are currently supported:

  • ANI

  • APNG

  • AVIFS

  • GIF

  • WEBP These are the supported properties:

  • Image.Props.AnimationEncoderCreateFilenameString: the file to save, if an SDL_IOStream isn't being used. This is required if Image.Props.AnimationEncoderCreateIOStreamPointer isn't set.

  • Image.Props.AnimationEncoderCreateIOStreamPointer: an SDL_IOStream that will be used to save the stream. This should not be closed until the animation encoder is closed. This is required if Image.Props.AnimationEncoderCreateFilenameString isn't set.

  • Image.Props.AnimationEncoderCreateIOStreamAutoCloseBoolean: true if closing the animation encoder should also close the associated SDL_IOStream.

  • Image.Props.AnimationEncoderCreateTypeString: the output file type, e.g. "webp", defaults to the file extension if Image.Props.AnimationEncoderCreateFilenameString is set.

  • Image.Props.AnimationEncoderCreateQualityNumber: the compression quality, in the range of 0 to 100. The higher the number, the higher the quality and file size. This defaults to a balanced value for compression and quality.

  • Image.Props.AnimationEncoderCreateTimebaseNumeratorNumber: the numerator of the fraction used to multiply the pts to convert it to seconds. This defaults to 1.

  • Image.Props.AnimationEncoderCreateTimebaseDenominatorNumber: the denominator of the fraction used to multiply the pts to convert it to seconds. This defaults to 1000.

Parameters

Name Type Description
props uint the properties of the animation encoder.

Returns

a new IMG_AnimationEncoder, or null on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.CreateAnimationEncoderWithProperties(System.UInt32)

Image.FreeAnimation

public static void FreeAnimation(IntPtr anim);

SDL declaration

extern SDL_DECLSPEC void SDLCALL IMG_FreeAnimation(IMG_Animation *anim);

Dispose of an Image.Animation and free its resources. The provided anim pointer is not valid once this call returns.

Parameters

Name Type Description
anim IntPtr Image.Animation to dispose of.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.FreeAnimation(System.IntPtr)

Image.GetAnimationDecoderFrame

public static bool GetAnimationDecoderFrame(IntPtr decoder, out IntPtr frame, long duration);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_GetAnimationDecoderFrame(IMG_AnimationDecoder *decoder, SDL_Surface **frame, Uint64 *duration);

Get the next frame in an animation decoder. This function decodes the next frame in the animation decoder, returning it as an SDL_Surface. The returned surface should be freed with SDL.DestroySurface when no longer needed.

If the animation decoder has no more frames or an error occurred while decoding the frame, this function returns false. In that case, please call SDL.GetError for more information. If SDL.GetError returns an empty string, that means there are no more available frames. If SDL.GetError returns a valid string, that means the decoding failed.

Parameters

Name Type Description
decoder IntPtr the animation decoder.
frame out IntPtr a pointer filled in with the SDL_Surface for the next frame in the animation.
duration long the duration of the frame, usually in milliseconds but can be other units if the Image.Props.AnimationDecoderCreateTimebaseDenominatorNumber property is set when creating the decoder.

Returns

true on success or false on failure and when no more frames are available; call Image.GetAnimationDecoderStatus or SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.GetAnimationDecoderFrame(System.IntPtr,System.IntPtr@,System.Int64)

Image.GetAnimationDecoderProperties

public static uint GetAnimationDecoderProperties(IntPtr decoder);

SDL declaration

extern SDL_DECLSPEC SDL_PropertiesID SDLCALL IMG_GetAnimationDecoderProperties(IMG_AnimationDecoder *decoder);

Get the properties of an animation decoder. This function returns the properties of the animation decoder, which holds information about the underlying image such as description, copyright text and loop count.

Image.Props.MetadataLoopCountNumber, if present, specifies the number of times to play the animation, with 0 meaning loop continuously.

Parameters

Name Type Description
decoder IntPtr the animation decoder.

Returns

the properties ID of the animation decoder, or 0 if there are no properties; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.GetAnimationDecoderProperties(System.IntPtr)

Image.GetAnimationDecoderStatus

public static Image.AnimationDecoderStatus GetAnimationDecoderStatus(IntPtr decoder);

SDL declaration

extern SDL_DECLSPEC IMG_AnimationDecoderStatus SDLCALL IMG_GetAnimationDecoderStatus(IMG_AnimationDecoder *decoder);

Get the decoder status indicating the current state of the decoder.

Parameters

Name Type Description
decoder IntPtr the decoder to get the status of.

Returns

the status of the underlying decoder, or Image.AnimationDecoderStatus.Invalid if the given decoder is invalid.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.GetAnimationDecoderStatus(System.IntPtr)

Image.GetClipboardImage

public static IntPtr GetClipboardImage();

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_GetClipboardImage(void);

Get the image currently in the clipboard. When done with the returned surface, the app should dispose of it with a call to SDL.DestroySurface.

Returns

a new SDL surface, or null if no supported image is available.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.GetClipboardImage

Image.IsANI

public static bool IsANI(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isANI(SDL_IOStream *src);

Detect ANI animated cursor data on a readable/seekable SDL_IOStream. This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IMG_isTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is ANI animated cursor data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsANI(System.IntPtr)

Image.IsAVIF

public static bool IsAVIF(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isAVIF(SDL_IOStream *src);

Detect AVIF image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is AVIF data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsAVIF(System.IntPtr)

Image.IsBMP

public static bool IsBMP(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isBMP(SDL_IOStream *src);

Detect BMP image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is BMP data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsBMP(System.IntPtr)

Image.IsCUR

public static bool IsCUR(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isCUR(SDL_IOStream *src);

Detect CUR image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is CUR data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsCUR(System.IntPtr)

Image.IsGIF

public static bool IsGIF(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isGIF(SDL_IOStream *src);

Detect GIF image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is GIF data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsGIF(System.IntPtr)

Image.IsICO

public static bool IsICO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isICO(SDL_IOStream *src);

Detect ICO image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is ICO data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsICO(System.IntPtr)

Image.IsJPG

public static bool IsJPG(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isJPG(SDL_IOStream *src);

Detect JPG image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IMG_isTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is JPG data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsJPG(System.IntPtr)

Image.IsJXL

public static bool IsJXL(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isJXL(SDL_IOStream *src);

Detect JXL image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is JXL data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsJXL(System.IntPtr)

Image.IsLBM

public static bool IsLBM(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isLBM(SDL_IOStream *src);

Detect LBM image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is LBM data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsLBM(System.IntPtr)

Image.IsPCX

public static bool IsPCX(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isPCX(SDL_IOStream *src);

Detect PCX image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is PCX data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsPCX(System.IntPtr)

Image.IsPNG

public static bool IsPNG(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isPNG(SDL_IOStream *src);

Detect PNG image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IMG_isTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is PNG data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsPNG(System.IntPtr)

Image.IsPNM

public static bool IsPNM(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isPNM(SDL_IOStream *src);

Detect PNM image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IMG_isTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is PNM data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsPNM(System.IntPtr)

Image.IsQOI

public static bool IsQOI(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isQOI(SDL_IOStream *src);

Detect QOI image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and\ basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is QOI data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsQOI(System.IntPtr)

Image.IsSVG

public static bool IsSVG(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isSVG(SDL_IOStream *src);

Detect SVG image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is SVG data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsSVG(System.IntPtr)

Image.IsTIF

public static bool IsTIF(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isTIF(SDL_IOStream *src);

Detect TIFF image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is TIFF data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsTIF(System.IntPtr)

Image.IsWEBP

public static bool IsWEBP(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isWEBP(SDL_IOStream *src);

Detect WEBP image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is WEBP data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsWEBP(System.IntPtr)

Image.IsXCF

public static bool IsXCF(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isXCF(SDL_IOStream *src);

Detect XCF image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is XCF data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsXCF(System.IntPtr)

Image.IsXPM

public static bool IsXPM(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isXPM(SDL_IOStream *src);

Detect XPM image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is XPM data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsXPM(System.IntPtr)

Image.IsXV

public static bool IsXV(IntPtr src);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_isXV(SDL_IOStream *src);

Detect XV image data on a readable/seekable SDL_IOStream.

This function attempts to determine if a file is a given filetype, reading the least amount possible from the SDL_IOStream (usually a few bytes).

There is no distinction made between "not the filetype in question" and basic i/o errors.

This function will always attempt to seek src back to where it started when this function was called, but it will not report any errors in doing so, but assuming seeking works, this means you can immediately use this with a different IsTYPE function, or load the image without further seeking.

You do not need to call this function to load data; SDL_image can work to determine file type in many cases in its standard load functions.

Parameters

Name Type Description
src IntPtr a seekable/readable SDL_IOStream to provide image data.

Returns

true if this is XV data, false otherwise.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.IsXV(System.IntPtr)

Image.Load

public static IntPtr Load(string file);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_Load(const char *file);

Load an image from a filesystem path into a software surface.

An SDL.Surface is a buffer of pixels in memory accessible by the CPU. Use this if you plan to hand the data to something else or manipulate it by calling: SDL.SetSurfaceColorKey(image, SDL_RLEACCEL, image.Format.Colorkey);

There are no guarantees about what format the new SDL.Surface data will be; in many cases, SDL_image will attempt to supply a surface that exactly matches the provided image, but in others it might have to convert (either because the image is in a format that SDL doesn't directly support or because it's compressed data that could reasonably uncompress to various formats and SDL_image had to pick one). You can inspect an SDL.Surface for its specifics, and use SDL.ConvertSurface to then migrate to any supported format.

If the image format supports a transparent pixel, SDL will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling: SDL.SetSurfaceColorKey(image, SDL_RLEACCEL, image.Format.Colorkey);

There is a separate function to read files from an SDL_IOStream, if you need an i/o abstraction to provide data from anywhere instead of a simple filesystem read; that function is Image.LoadIO.

If you are using SDL's 2D rendering API, there is an equivalent call to load images directly into an SDL_Texture for use by the GPU without using a software surface: call Image.LoadTexture instead.

When done with the returned surface, the app should dispose of it with a call to SDL_DestroySurface ().

Parameters

Name Type Description
file string a path on the filesystem to load an image from.

Returns

a new SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.Load(System.String)

Image.LoadANIAnimationIO

public static IntPtr LoadANIAnimationIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC IMG_Animation *SDLCALL IMG_LoadANIAnimation_IO(SDL_IOStream *src);

Load an ANI animation directly from an SDL_IOStream. If you know you definitely have an ANI image, you can call this function, which will skip SDL_image's file format detection routines. Generally, it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

When done with the returned animation, the app should dispose of it with a call to Image.FreeAnimation.

Parameters

Name Type Description
src IntPtr an SDL_IOStream from which data will be read.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.LoadANIAnimationIO(System.IntPtr)

Image.LoadAnimation

public static IntPtr LoadAnimation(string file);

SDL declaration

extern SDL_DECLSPEC IMG_Animation * SDLCALL IMG_LoadAnimation(const char *file);

Load an animation from a file.

When done with the returned animation, the app should dispose of it with a call to Image.FreeAnimation.

Parameters

Name Type Description
file string path on the filesystem containing an animated image.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadAnimation(System.String)

Image.LoadAnimationIO

public static IntPtr LoadAnimationIO(IntPtr src, bool closeio);

SDL declaration

extern SDL_DECLSPEC IMG_Animation * SDLCALL IMG_LoadAnimation_IO(SDL_IOStream *src, bool closeio);

Load an animation from an SDL_IOStream.

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

When done with the returned animation, the app should dispose of it with a call to Image.FreeAnimation.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadAnimationIO(System.IntPtr,System.Boolean)

Image.LoadAnimationTypedIO

public static IntPtr LoadAnimationTypedIO(IntPtr src, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC IMG_Animation * SDLCALL IMG_LoadAnimationTyped_IO(SDL_IOStream *src, bool closeio, const char *type);

Load an animation from an SDL_IOStream.

Even though this function accepts a file type, SDL_image may still try other decoders that are capable of detecting file type from the contents of the image data, but may rely on the caller-provided type string for formats that it cannot autodetect. If type is null, SDL_image will rely solely on its ability to guess the format.

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

When done with the returned animation, the app should dispose of it with a call to Image.FreeAnimation.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
type string a filename extension that represent this data ("GIF", etc).

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadAnimationTypedIO(System.IntPtr,System.Boolean,System.String)

Image.LoadAPNGAnimationIO

public static IntPtr LoadAPNGAnimationIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC IMG_Animation *SDLCALL IMG_LoadAPNGAnimation_IO(SDL_IOStream *src);

Load an APNG animation directly from an SDL_IOStream. If you know you definitely have an APNG image, you can call this function, which will skip SDL_image's file format detection routines. Generally, it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

When done with the returned animation, the app should dispose of it with a call to Image.FreeAnimation.

Parameters

Name Type Description
src IntPtr an SDL_IOStream from which data will be read.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.LoadAPNGAnimationIO(System.IntPtr)

Image.LoadAVIFAnimationIO

public static IntPtr LoadAVIFAnimationIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC IMG_Animation *SDLCALL IMG_LoadAVIFAnimation_IO(SDL_IOStream *src);

Load an AVIF animation directly from an SDL_IOStream. If you know you definitely have an AVIF animation, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

When done with the returned animation, the app should dispose of it with a call to Image.FreeAnimation.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.LoadAVIFAnimationIO(System.IntPtr)

Image.LoadAVIFIO

public static IntPtr LoadAVIFIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadAVIF_IO(SDL_IOStream *src);

Load a AVIF image directly.

If you know you definitely have a AVIF image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadAVIFIO(System.IntPtr)

Image.LoadBMPIO

public static IntPtr LoadBMPIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadBMP_IO(SDL_IOStream *src);

Load a BMP image directly.

If you know you definitely have a BMP image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadBMPIO(System.IntPtr)

Image.LoadCURIO

public static IntPtr LoadCURIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadCUR_IO(SDL_IOStream *src);

Load a CUR image directly.

If you know you definitely have a CUR image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadCURIO(System.IntPtr)

Image.LoadGIFAnimationIO

public static IntPtr LoadGIFAnimationIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC IMG_Animation * SDLCALL IMG_LoadGIFAnimation_IO(SDL_IOStream *src);

Load a GIF animation directly. If you know you definitely have a GIF image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadGIFAnimationIO(System.IntPtr)

Image.LoadGIFIO

public static IntPtr LoadGIFIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadGIF_IO(SDL_IOStream *src);

Load a GIF image directly.

If you know you definitely have a GIF image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadGIFIO(System.IntPtr)

Image.LoadGPUTexture

public static IntPtr LoadGPUTexture(IntPtr device, IntPtr copyPass, string file, out int width, out int height);

SDL declaration

extern SDL_DECLSPEC SDL_GPUTexture * SDLCALL IMG_LoadGPUTexture(SDL_GPUDevice *device, SDL_GPUCopyPass *copyPass, const char *file, int *width, int *height);

Load an image from a filesystem path into a GPU texture. An SDL_GPUTexture represents an image in GPU memory, usable by SDL's GPU API. Regardless of the source format of the image, this function will create a GPU texture with the format SDL.GPUTextureFormat.R8G8B8A8Unorm with no mip levels. It can be bound as a sampled texture from a graphics or compute pipeline and as a a readonly storage texture in a compute pipeline.

There is a separate function to read files from an SDL_IOStream, if you need an i/o abstraction to provide data from anywhere instead of a simple filesystem read; that function is Image.LoadGPUTextureIO.

When done with the returned texture, the app should dispose of it with a call to SDL.ReleaseGPUTexture.

Parameters

Name Type Description
device IntPtr the SDL_GPUDevice to use to create the GPU texture.
copyPass IntPtr the SDL_GPUCopyPass to use to upload the loaded image to the GPU texture.
file string a path on the filesystem to load an image from.
width out int a pointer filled in with the width of the GPU texture. may be null.
height out int a pointer filled in with the width of the GPU texture. may be null.

Returns

a new GPU texture, or null on error.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.LoadGPUTexture(System.IntPtr,System.IntPtr,System.String,System.Int32@,System.Int32@)

Image.LoadGPUTextureIO

public static IntPtr LoadGPUTextureIO(IntPtr device, IntPtr copyPass, IntPtr src, bool closeio, out int width, out int height);

SDL declaration

extern SDL_DECLSPEC SDL_GPUTexture * SDLCALL IMG_LoadGPUTexture_IO(SDL_GPUDevice *device, SDL_GPUCopyPass *copy_pass, SDL_IOStream *src, bool closeio, int *width, int *height);

Load an image from an SDL data source into a GPU texture. An SDL_GPUTexture represents an image in GPU memory, usable by SDL's GPU API. Regardless of the source format of the image, this function will create a GPU texture with the format SDL.GPUTextureFormat.R8G8B8A8Unorm with no mip levels. It can be bound as a sampled texture from a graphics or compute pipeline and as a a readonly storage texture in a compute pipeline.

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

There is a separate function to read files from disk without having to deal with SDL_IOStream: `IMG_LoadGPUTexture(device, copy_pass, "filename.jpg", width, height) will call this function and manage those details for you, determining the file type from the filename's extension.

There is also IMG_LoadGPUTextureTyped_IO(), which is equivalent to this function except a file extension (like "BMP", "JPG", etc) can be specified, in case SDL_image cannot autodetect the file format.

When done with the returned texture, the app should dispose of it with a call to SDL.ReleaseGPUTexture.

Parameters

Name Type Description
device IntPtr the SDL_GPUDevice to use to create the GPU texture.
copyPass IntPtr the SDL_GPUCopyPass to use to upload the loaded image to the GPU texture.
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
width out int a pointer filled in with the width of the GPU texture. may be null.
height out int a pointer filled in with the width of the GPU texture. may be null.

Returns

a new GPU texture, or null on error.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.LoadGPUTextureIO(System.IntPtr,System.IntPtr,System.IntPtr,System.Boolean,System.Int32@,System.Int32@)

Image.LoadGPUTextureTypedIO

public static IntPtr LoadGPUTextureTypedIO(IntPtr device, IntPtr copyPass, IntPtr src, bool closeio, string file, out int width, out int height);

SDL declaration

extern SDL_DECLSPEC SDL_GPUTexture * SDLCALL IMG_LoadGPUTextureTyped_IO(SDL_GPUDevice *device, SDL_GPUCopyPass *copy_pass, SDL_IOStream *src, bool closeio, const char *type, int *width, int *height);

Load an image from an SDL data source into a GPU texture.

An SDL_GPUTexture represents an image in GPU memory, usable by SDL's GPU API. Regardless of the source format of the image, this function will create a GPU texture with the format SDL.GPUTextureFormat.R8G8B8A8Unorm with no mip levels. It can be bound as a sampled texture from a graphics or compute pipeline and as a a readonly storage texture in a compute pipeline.

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

Even though this function accepts a file type, SDL_image may still try other decoders that are capable of detecting file type from the contents of the image data, but may rely on the caller-provided type string for formats that it cannot autodetect. If type is null, SDL_image will rely solely on its ability to guess the format.

There is a separate function to read files from disk without having to deal with SDL_IOStream: `IMG_LoadGPUTexture(device, copy_pass, "filename.jpg", width, height) will call this function and manage those details for you, determining the file type from the filename's extension.

There is also Image.LoadGPUTextureIO, which is equivalent to this function except that it will rely on SDL_image to determine what type of data it is loading, much like passing a null for type.

When done with the returned texture, the app should dispose of it with a call to SDL.ReleaseGPUTexture.

Parameters

Name Type Description
device IntPtr the SDL_GPUDevice to use to create the GPU texture.
copyPass IntPtr the SDL_GPUCopyPass to use to upload the loaded image to the GPU texture.
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
file string a filename extension that represent this data ("BMP", "GIF", "PNG", etc).
width out int a pointer filled in with the width of the GPU texture. may be null.
height out int height a pointer filled in with the width of the GPU texture. may be null.

Returns

a new GPU texture, or >null on error.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.LoadGPUTextureTypedIO(System.IntPtr,System.IntPtr,System.IntPtr,System.Boolean,System.String,System.Int32@,System.Int32@)

Image.LoadICOIO

public static IntPtr LoadICOIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadICO_IO(SDL_IOStream *src);

Load a ICO image directly.

If you know you definitely have a ICO image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadICOIO(System.IntPtr)

Image.LoadIO

public static IntPtr LoadIO(IntPtr src, bool closeio);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_Load_IO(SDL_IOStream *src, bool closeio);

Load an image from an SDL data source into a software surface.

An SDL.Surface is a buffer of pixels in memory accessible by the CPU. Use this if you plan to hand the data to something else or manipulate it further in code.

There are no guarantees about what format the new SDL.Surface data will be; in many cases, SDL_image will attempt to supply a surface that exactly matches the provided image, but in others it might have to convert (either because the image is in a format that SDL doesn't directly support or because it's compressed data that could reasonably uncompress to various formats and SDL_image had to pick one). You can inspect an SDL.Surface for its specifics, and use SDL.ConvertSurface to then migrate to any supported format.

If the image format supports a transparent pixel, SDL will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling: SDL.SetSurfaceColorKey(image, SDL_RLEACCEL, image.Format.Colorkey);

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

There is a separate function to read files from disk without having to deal with SDL_IOStream: Image.Load("filename.jpg") will call this function and manage those details for you, determining the file type from the filename's extension.

There is also Image.LoadTypedIO, which is equivalent to this function except a file extension (like "BMP", "JPG", etc) can be specified, in case SDL_image cannot autodetect the file format.

If you are using SDL's 2D rendering API, there is an equivalent call to load images directly into an SDL_Texture for use by the GPU without using a software surface: call Image.LoadTextureIO instead.

When done with the returned surface, the app should dispose of it with a call to SDL.DestroySurface.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

a new SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadIO(System.IntPtr,System.Boolean)

Image.LoadJPGIO

public static IntPtr LoadJPGIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadJPG_IO(SDL_IOStream *src);

Load a JPG image directly.

If you know you definitely have a JPG image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadJPGIO(System.IntPtr)

Image.LoadJXLIO

public static IntPtr LoadJXLIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadJXL_IO(SDL_IOStream *src);

Load a JXL image directly.

If you know you definitely have a JXL image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadJXLIO(System.IntPtr)

Image.LoadLBMIO

public static IntPtr LoadLBMIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadLBM_IO(SDL_IOStream *src);

Load a LBM image directly.

If you know you definitely have a LBM image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadLBMIO(System.IntPtr)

Image.LoadPCXIO

public static IntPtr LoadPCXIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadPCX_IO(SDL_IOStream *src);

Load a PCX image directly.

If you know you definitely have a PCX image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadPCXIO(System.IntPtr)

Image.LoadPNGIO

public static IntPtr LoadPNGIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNG_IO(SDL_IOStream *src);

Load a PNG image directly.

If you know you definitely have a PNG image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadPNGIO(System.IntPtr)

Image.LoadPNMIO

public static IntPtr LoadPNMIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNM_IO(SDL_IOStream *src);

Load a PNM image directly.

If you know you definitely have a PNM image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadPNMIO(System.IntPtr)

Image.LoadQOIIO

public static IntPtr LoadQOIIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadQOI_IO(SDL_IOStream *src);

Load a QOI image directly.

If you know you definitely have a QOI image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadQOIIO(System.IntPtr)

Image.LoadSizedSVGIO

public static IntPtr LoadSizedSVGIO(IntPtr src, int width, int height);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadSizedSVG_IO(SDL_IOStream *src, int width, int height);

Load an SVG image, scaled to a specific size.

Since SVG files are resolution-independent, you specify the size you would like the output image to be and it will be generated at those dimensions.

Either width or height may be 0 and the image will be auto-sized to preserve aspect ratio.

When done with the returned surface, the app should dispose of it with a call to SDL.DestroySurface.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load SVG data from.
width int desired width of the generated surface, in pixels.
height int desired height of the generated surface, in pixels.

Returns

a new SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadSizedSVGIO(System.IntPtr,System.Int32,System.Int32)

Image.LoadSVGIO

public static IntPtr LoadSVGIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadSVG_IO(SDL_IOStream *src);

Load a SVG image directly.

If you know you definitely have a SVG image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadSVGIO(System.IntPtr)

Image.LoadTexture

public static IntPtr LoadTexture(IntPtr renderer, string file);

SDL declaration

extern SDL_DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture(SDL_Renderer *renderer, const char *file);

Load an image from a filesystem path into a texture.

An SDL_Texture represents an image in GPU memory, usable by SDL's 2D Render API. This can be significantly more efficient than using a CPU-bound SDL.Surface if you don't need to manipulate the image directly after loading it.

If the loaded image has transparency or a colorkey, a texture with an alpha channel will be created. Otherwise, SDL_image will attempt to create an SDL_Texture in the most format that most reasonably represents the image data (but in many cases, this will just end up being 32-bit RGB or 32-bit RGBA).

There is a separate function to read files from an SDL_IOStream, if you need an i/o abstraction to provide data from anywhere instead of a simple filesystem read; that function is Image.LoadTextureIO.

If you would rather decode an image to an SDL.Surface (a buffer of pixels in CPU memory), call Image.Load instead.

When done with the returned texture, the app should dispose of it with a call to SDL.DestroyTexture.

Parameters

Name Type Description
renderer IntPtr the SDL_Renderer to use to create the texture.
file string a path on the filesystem to load an image from.

Returns

a new texture, or nullon error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadTexture(System.IntPtr,System.String)

Image.LoadTextureIO

public static IntPtr LoadTextureIO(IntPtr renderer, IntPtr src, bool closeio);

SDL declaration

extern SDL_DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture_IO(SDL_Renderer *renderer, SDL_IOStream *src, bool closeio);

Load an image from an SDL data source into a texture.

An SDL_Texture represents an image in GPU memory, usable by SDL's 2D Render API. This can be significantly more efficient than using a CPU-bound SDL.Surface if you don't need to manipulate the image directly after loading it.

If the loaded image has transparency or a colorkey, a texture with an alpha channel will be created. Otherwise, SDL_image will attempt to create an SDL_Texture in the most format that most reasonably represents the image data (but in many cases, this will just end up being 32-bit RGB or 32-bit RGBA).

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

There is a separate function to read files from disk without having to deal with SDL_IOStream: LoadTexture(renderer, "filename.jpg") will call this function and manage those details for you, determining the file type from the filename's extension.

There is also Image.LoadTextureTypedIO, which is equivalent to this function except a file extension (like "BMP", "JPG", etc) can be specified, in case SDL_image cannot autodetect the file format.

If you would rather decode an image to an SDL.Surface (a buffer of pixels in CPU memory), call Image.Load instead.

When done with the returned texture, the app should dispose of it with a call to SDL.DestroyTexture.

Parameters

Name Type Description
renderer IntPtr the SDL_Renderer to use to create the texture.
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

a new texture, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadTextureIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.LoadTextureTypedIO

public static IntPtr LoadTextureTypedIO(IntPtr renderer, IntPtr src, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC SDL_Texture * SDLCALL IMG_LoadTextureTyped_IO(SDL_Renderer *renderer, SDL_IOStream *src, bool closeio, const char *type);

Load an image from an SDL data source into a texture.

An SDL_Texture represents an image in GPU memory, usable by SDL's 2D Render API. This can be significantly more efficient than using a CPU-bound SDL.Surface if you don't need to manipulate the image directly after loading it.

If the loaded image has transparency or a colorkey, a texture with an alpha channel will be created. Otherwise, SDL_image will attempt to create an SDL_Texture in the most format that most reasonably represents the image data (but in many cases, this will just end up being 32-bit RGB or 32-bit RGBA).

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

Even though this function accepts a file type, SDL_image may still try other decoders that are capable of detecting file type from the contents of the image data, but may rely on the caller-provided type string for formats that it cannot autodetect. If type is null, SDL_image will rely solely on its ability to guess the format.

There is a separate function to read files from disk without having to deal with SDL_IOStream: Image.LoadTexture("filename.jpg") will call this function and manage those details for you, determining the file type from the filename's extension.

There is also Image.LoadTextureIO, which is equivalent to this function except that it will rely on SDL_image to determine what type of data it is loading, much like passing a null for type.

If you would rather decode an image to an SDL.Surface (a buffer of pixels in CPU memory), call Image.LoadTypedIO instead.

When done with the returned texture, the app should dispose of it with a call to SDL.DestroyTexture.

Parameters

Name Type Description
renderer IntPtr the SDL_Renderer to use to create the texture.
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
type string a filename extension that represent this data ("BMP", "GIF", "PNG", etc).

Returns

a new texture, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadTextureTypedIO(System.IntPtr,System.IntPtr,System.Boolean,System.String)

Image.LoadTGAIO

public static IntPtr LoadTGAIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadTGA_IO(SDL_IOStream *src);

Load a TGA image directly.

If you know you definitely have a TGA image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadTGAIO(System.IntPtr)

Image.LoadTIFIO

public static IntPtr LoadTIFIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadTIF_IO(SDL_IOStream *src);

Load a TIFF image directly.

If you know you definitely have a TIFF image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadTIFIO(System.IntPtr)

Image.LoadTypedIO

public static IntPtr LoadTypedIO(IntPtr src, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadTyped_IO(SDL_IOStream *src, bool closeio, const char *type);

Load an image from an SDL data source into a software surface.

An SDL.Surface is a buffer of pixels in memory accessible by the CPU. Use this if you plan to hand the data to something else or manipulate it further in code.

There are no guarantees about what format the new SDL.Surface data will be; in many cases, SDL_image will attempt to supply a surface that exactly matches the provided image, but in others it might have to convert (either because the image is in a format that SDL doesn't directly support or because it's compressed data that could reasonably uncompress to various formats and SDL_image had to pick one). You can inspect an SDL.Surface for its specifics, and use SDL.ConvertSurface to then migrate to any supported format.

If the image format supports a transparent pixel, SDL will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling: SDL.SetSurfaceColorKey(image, SDL_RLEACCEL, image.Format.Colorkey);

If closeio is true, src will be closed before returning, whether this function succeeds or not. SDL_image reads everything it needs from src during this call in any case.

Even though this function accepts a file type, SDL_image may still try other decoders that are capable of detecting file type from the contents of the image data, but may rely on the caller-provided type string for formats that it cannot autodetect. If type is null, SDL_image will rely solely on its ability to guess the format.

There is a separate function to read files from disk without having to deal with SDL_IOStream: Image.Load("filename.jpg") will call this function and manage those details for you, determining the file type from the filename's extension.

There is also Image.LoadIO, which is equivalent to this function except that it will rely on SDL_image to determine what type of data it is loading, much like passing a null for type.

If you are using SDL's 2D rendering API, there is an equivalent call to load images directly into an SDL_Texture for use by the GPU without using a software surface: call Image.LoadTextureTypedIO instead.

When done with the returned surface, the app should dispose of it with a call to SDL.DestroySurface.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
type string a filename extension that represent this data ("BMP", "GIF", "PNG", etc).

Returns

a new SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadTypedIO(System.IntPtr,System.Boolean,System.String)

Image.LoadWEBPAnimationIO

public static IntPtr LoadWEBPAnimationIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC IMG_Animation * SDLCALL IMG_LoadWEBPAnimation_IO(SDL_IOStream *src);

Load a WEBP animation directly.

If you know you definitely have a WEBP image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream that data will be read from.

Returns

a new Image.Animation, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadWEBPAnimationIO(System.IntPtr)

Image.LoadWEBPIO

public static IntPtr LoadWEBPIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadWEBP_IO(SDL_IOStream *src);

Load a WEBP image directly.

If you know you definitely have a WEBP image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadWEBPIO(System.IntPtr)

Image.LoadXCFIO

public static IntPtr LoadXCFIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadXCF_IO(SDL_IOStream *src);

Load a XCF image directly.

If you know you definitely have a XCF image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or nullon error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadXCFIO(System.IntPtr)

Image.LoadXPMIO

public static IntPtr LoadXPMIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadXPM_IO(SDL_IOStream *src);

Load a XPM image directly.

If you know you definitely have a XPM image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadXPMIO(System.IntPtr)

Image.LoadXVIO

public static IntPtr LoadXVIO(IntPtr src);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_LoadXV_IO(SDL_IOStream *src);

Load a XV image directly.

If you know you definitely have a XV image, you can call this function, which will skip SDL_image's file format detection routines. Generally it's better to use the abstract interfaces; also, there is only an SDL_IOStream interface available here.

Parameters

Name Type Description
src IntPtr an SDL_IOStream to load image data from.

Returns

SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.LoadXVIO(System.IntPtr)

Image.ReadXPMFromArray

public static IntPtr ReadXPMFromArray(string[] xpm);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_ReadXPMFromArray(char **xpm);

Load an XPM image from a memory array.

The returned surface will be an 8bpp indexed surface, if possible, otherwise it will be 32bpp. If you always want 32-bit data, use Image.ReadXPMFromArrayToRGB888 instead.

When done with the returned surface, the app should dispose of it with a call to SDL.DestroySurface.

Parameters

Name Type Description
xpm string[] a null-terminated array of strings that comprise XPM data.

Returns

a new SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.ReadXPMFromArray(System.String[])

Image.ReadXPMFromArrayToRGB888

public static IntPtr ReadXPMFromArrayToRGB888(string[] xpm);

SDL declaration

extern SDL_DECLSPEC SDL_Surface * SDLCALL IMG_ReadXPMFromArrayToRGB888(char **xpm);

Load an XPM image from a memory array.

The returned surface will always be a 32-bit RGB surface. If you want 8-bit indexed colors (and the XPM data allows it), use Image.ReadXPMFromArray instead.

When done with the returned surface, the app should dispose of it with a call to SDL.DestroySurface.

Parameters

Name Type Description
xpm string[] a null-terminated array of strings that comprise XPM data.

Returns

a new SDL surface, or null on error.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.ReadXPMFromArrayToRGB888(System.String[])

Image.ResetAnimationDecoder

public static bool ResetAnimationDecoder(IntPtr decoder);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_ResetAnimationDecoder(IMG_AnimationDecoder *decoder);

Reset an animation decoder. Calling this function resets the animation decoder, allowing it to start from the beginning again. This is useful if you want to decode the frame sequence again without creating a new decoder.

Parameters

Name Type Description
decoder IntPtr the decoder to reset.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.ResetAnimationDecoder(System.IntPtr)

Image.Save

public static bool Save(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_Save(SDL_Surface *surface, const char *file);

Save an SDL_Surface into an image file. If the file already exists, it will be overwritten.

For formats that accept a quality, a default quality of 90 will be used.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.Save(System.IntPtr,System.String)

Image.SaveANIAnimationIO

public static bool SaveANIAnimationIO(IntPtr anim, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveANIAnimation_IO(IMG_Animation *anim, SDL_IOStream *dst, bool closeio);

Save an animation in ANI format to an SDL_IOStream. If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
anim IntPtr the animation to save.
dst IntPtr an SDL_IOStream from which data will be written to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveANIAnimationIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveAnimation

public static bool SaveAnimation(IntPtr anim, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveAnimation(IMG_Animation *anim, const char *file);

Save an animation to a file. For formats that accept a quality, a default quality of 90 will be used.

Parameters

Name Type Description
anim IntPtr anim the animation to save.
file string path on the filesystem containing an animated image.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveAnimation(System.IntPtr,System.String)

Image.SaveAnimationTypedIO

public static bool SaveAnimationTypedIO(IntPtr anim, IntPtr dst, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveAnimationTyped_IO(IMG_Animation *anim, SDL_IOStream *dst, bool closeio, const char *type);

Save an animation to an SDL_IOStream. If you just want to save to a filename, you can use Image.SaveAnimation instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

For formats that accept a quality, a default quality of 90 will be used.

Parameters

Name Type Description
anim IntPtr the animation to save.
dst IntPtr an SDL_IOStream that data will be written to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
type string a filename extension that represent this data ("GIF", etc).

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveAnimationTypedIO(System.IntPtr,System.IntPtr,System.Boolean,System.String)

Image.SaveAPNGAnimationIO

public static bool SaveAPNGAnimationIO(IntPtr anim, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveAPNGAnimation_IO(IMG_Animation *anim, SDL_IOStream *dst, bool closeio);

Save an animation in APNG format to an SDL_IOStream. If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
anim IntPtr the animation to save.
dst IntPtr an SDL_IOStream from which data will be written to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveAPNGAnimationIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveAVIF

public static bool SaveAVIF(IntPtr surface, string file, int quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveAVIF(SDL_Surface *surface, const char *file, int quality);

Save an SDL.Surface into a AVIF image file.

If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.
quality int the desired quality, ranging between 0 (lowest) and 100 (highest).

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.SaveAVIF(System.IntPtr,System.String,System.Int32)

Image.SaveAVIFAnimationIO

public static bool SaveAVIFAnimationIO(IntPtr anim, IntPtr dst, bool closeio, int quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveAVIFAnimation_IO(IMG_Animation *anim, SDL_IOStream *dst, bool closeio, int quality);

Save an animation in AVIF format to an SDL_IOStream. If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
anim IntPtr the animation to save.
dst IntPtr an SDL_IOStream from which data will be written to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
quality int the desired quality, ranging between 0 (lowest) and 100 (highest).

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveAVIFAnimationIO(System.IntPtr,System.IntPtr,System.Boolean,System.Int32)

Image.SaveAVIFIO

public static bool SaveAVIFIO(IntPtr surface, IntPtr dst, bool closeio, int quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveAVIF_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio, int quality);

Save an SDL.Surface into AVIF image data, via an SDL_IOStream.

If you just want to save to a filename, you can use Image.SaveAVIF instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
quality int the desired quality, ranging between 0 (lowest) and 100 (highest).

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.SaveAVIFIO(System.IntPtr,System.IntPtr,System.Boolean,System.Int32)

Image.SaveBMP

public static bool SaveBMP(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveBMP(SDL_Surface *surface, const char *file);

Save an SDL.Surface into a BMP image file.

If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveBMP(System.IntPtr,System.String)

Image.SaveBMPIO

public static bool SaveBMPIO(IntPtr surface, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveBMP_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio);

Save an SDL.Surface into BMP image data, via an SDL_IOStream.

If you just want to save to a filename, you can use Image.SaveBMP instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveBMPIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveCUR

public static bool SaveCUR(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveCUR(SDL_Surface *surface, const char *file);

Save an SDL.Surface into a CUR image file. If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr surface the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveCUR(System.IntPtr,System.String)

Image.SaveCURIO

public static bool SaveCURIO(IntPtr surface, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveCUR_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio);

Save an SDL_Surface into CUR image data, via an SDL_IOStream. If you just want to save to a filename, you can use Image.SaveCUR instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveCURIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveGIF

public static bool SaveGIF(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveGIF(SDL_Surface *surface, const char *file);

Save an SDL.Surface into a GIF image file. If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveGIF(System.IntPtr,System.String)

Image.SaveGIFAnimationIO

public static bool SaveGIFAnimationIO(IntPtr anim, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveGIFAnimation_IO(IMG_Animation *anim, SDL_IOStream *dst, bool closeio);

Save an animation in GIF format to an SDL_IOStream. If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
anim IntPtr the animation to save.
dst IntPtr an SDL_IOStream from which data will be written to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveGIFAnimationIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveGIFIO

public static bool SaveGIFIO(IntPtr surface, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveGIF_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio);

Save an SDL.Surface into GIF image data, via an SDL_IOStream. If you just want to save to a filename, you can use Image.SaveGIF instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveGIFIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveICO

public static bool SaveICO(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveICO(SDL_Surface *surface, const char *file);

Save an SDL.Surface into a ICO image file. If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveICO(System.IntPtr,System.String)

Image.SaveICOIO

public static bool SaveICOIO(IntPtr surface, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveICO_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio);

Save an SDL.Surface into ICO image data, via an SDL_IOStream. If you just want to save to a filename, you can use Image.SaveICO instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveICOIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveJPG

public static bool SaveJPG(IntPtr surface, string file, int quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveJPG(SDL_Surface *surface, const char *file, int quality);

Save an SDL.Surface into a JPEG image file. If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.
quality int [0; 33] is Lowest quality, [34; 66] is Middle quality, [67; 100] is Highest quality.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.SaveJPG(System.IntPtr,System.String,System.Int32)

Image.SaveJPGIO

public static bool SaveJPGIO(IntPtr surface, IntPtr dst, bool closeio, int quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveJPG_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio, int quality);

Save an SDL.Surface into JPEG image data, via an SDL_IOStream.

If you just want to save to a filename, you can use Image.SaveJPG instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
quality int [0; 33] is Lowest quality, [34; 66] is Middle quality, [67; 100] is Highest quality.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.SaveJPGIO(System.IntPtr,System.IntPtr,System.Boolean,System.Int32)

Image.SavePNG

public static bool SavePNG(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SavePNG(SDL_Surface *surface, const char *file);

Save an SDL.Surface into a PNG image file.

If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.SavePNG(System.IntPtr,System.String)

Image.SavePNGIO

public static bool SavePNGIO(IntPtr surface, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SavePNG_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio);

Save an SDL.Surface into PNG image data, via an SDL_IOStream.

If you just want to save to a filename, you can use Image.SavePNG instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.SavePNGIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveTGA

public static bool SaveTGA(IntPtr surface, string file);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveTGA(SDL_Surface *surface, const char *file);

Save an SDL.Surface into a TGA image file. If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write new file to.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveTGA(System.IntPtr,System.String)

Image.SaveTGAIO

public static bool SaveTGAIO(IntPtr surface, IntPtr dst, bool closeio);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveTGA_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio);

Save an SDL.Surface into TGA image data, via an SDL_IOStream. If you just want to save to a filename, you can use Image.SaveTGA instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveTGAIO(System.IntPtr,System.IntPtr,System.Boolean)

Image.SaveTypedIO

public static bool SaveTypedIO(IntPtr surface, IntPtr dst, bool closeio, string type);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveTyped_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio, const char *type);

Save an SDL.Surface into formatted image data, via an SDL_IOStream.

If you just want to save to a filename, you can use Image.Save instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

For formats that accept a quality, a default quality of 90 will be used.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
type string a filename extension that represent this data ("BMP", "GIF", "PNG", etc).

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveTypedIO(System.IntPtr,System.IntPtr,System.Boolean,System.String)

Image.SaveWEBP

public static bool SaveWEBP(IntPtr surface, string file, float quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveWEBP(SDL_Surface *surface, const char *file, float quality);

Save an SDL.Surface into a WEBP image file. If the file already exists, it will be overwritten.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
file string path on the filesystem to write the new file to.
quality float between 0 and 100. For lossy, 0 gives the smallest size and 100 the largest. For lossless, this parameter is the amount of effort put into the compression: 0 is the fastest but gives larger files compared to the slowest, but best, 100.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveWEBP(System.IntPtr,System.String,System.Single)

Image.SaveWEBPAnimationIO

public static bool SaveWEBPAnimationIO(IntPtr anim, IntPtr dst, bool closeio, int quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveWEBPAnimation_IO(IMG_Animation *anim, SDL_IOStream *dst, bool closeio, int quality);

Save an animation in WEBP format to an SDL_IOStream. If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
anim IntPtr the animation to save.
dst IntPtr an SDL_IOStream from which data will be written to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
quality int between 0 and 100. For lossy, 0 gives the smallest size and 100 the largest. For lossless, this parameter is the amount of effort put into the compression: 0 is the fastest but gives larger files compared to the slowest, but best, 100.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveWEBPAnimationIO(System.IntPtr,System.IntPtr,System.Boolean,System.Int32)

Image.SaveWEBPIO

public static bool SaveWEBPIO(IntPtr surface, IntPtr dst, bool closeio, float quality);

SDL declaration

extern SDL_DECLSPEC bool SDLCALL IMG_SaveWEBP_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio, float quality);

Save an SDL.Surface into WEBP image data, via an SDL_IOStream. If you just want to save to a filename, you can use Image.SaveWEBP instead.

If closeio is true, dst will be closed before returning, whether this function succeeds or not.

Parameters

Name Type Description
surface IntPtr the SDL surface to save.
dst IntPtr the SDL_IOStream to save the image data to.
closeio bool true to close/free the SDL_IOStream before returning, false to leave it open.
quality float between 0 and 100. For lossy, 0 gives the smallest size and 100 the largest. For lossless, this parameter is the amount of effort put into the compression: 0 is the fastest but gives larger files compared to the slowest, but best, 100.

Returns

true on success or false on failure; call SDL.GetError for more information.

Since: This function is available since SDL_image 3.4.0.

XML member id: M:SDL3.Image.SaveWEBPIO(System.IntPtr,System.IntPtr,System.Boolean,System.Single)

Image.Version

public static int Version();

SDL declaration

extern SDL_DECLSPEC int SDLCALL IMG_Version(void);

This function gets the version of the dynamically linked SDL_image library.

Returns

SDL_image version.

Since: This function is available since SDL_image 3.0.0.

XML member id: M:SDL3.Image.Version

Clone this wiki locally