###### (This function is part of SDL_image, a separate library from SDL.) # IMG_SaveTyped_IO Save an SDL_Surface into formatted image data, via an SDL_IOStream. ## Header File Defined in [](https://github.com/libsdl-org/SDL_image/blob/main/include/SDL3_image/SDL_image.h) ## Syntax ```c bool IMG_SaveTyped_IO(SDL_Surface *surface, SDL_IOStream *dst, bool closeio, const char *type); ``` ## Function Parameters | | | | | -------------- | ----------- | ----------------------------------------------------------------------------- | | SDL_Surface * | **surface** | the SDL surface to save. | | SDL_IOStream * | **dst** | the SDL_IOStream to save the image data to. | | bool | **closeio** | true to close/free the SDL_IOStream before returning, false to leave it open. | | const char * | **type** | a filename extension that represent this data ("BMP", "GIF", "PNG", etc). | ## Return Value (bool) Returns true on success or false on failure; call SDL_GetError() for more information. ## Remarks If you just want to save to a filename, you can use [IMG_Save](IMG_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. ## Version This function is available since SDL_image 3.4.0. ## See Also - [IMG_Save](IMG_Save) - [IMG_SaveAVIF_IO](IMG_SaveAVIF_IO) - [IMG_SaveBMP_IO](IMG_SaveBMP_IO) - [IMG_SaveGIF_IO](IMG_SaveGIF_IO) - [IMG_SaveJPG_IO](IMG_SaveJPG_IO) - [IMG_SavePNG_IO](IMG_SavePNG_IO) - [IMG_SaveTGA_IO](IMG_SaveTGA_IO) - [IMG_SaveWEBP_IO](IMG_SaveWEBP_IO) ---- [CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategorySDLImage](CategorySDLImage)