SDL_image | Image decoding for many popular formats | Computer Vision library

 by   libsdl-org C Version: release-2.6.3 License: Zlib

kandi X-RAY | SDL_image Summary

kandi X-RAY | SDL_image Summary

SDL_image is a C library typically used in Artificial Intelligence, Computer Vision applications. SDL_image has no vulnerabilities, it has a Permissive License and it has low support. However SDL_image has 6128 bugs. You can download it from GitHub.

The latest version of this library is available from: This is a simple library to load images of various formats as SDL surfaces. This library supports BMP, PNM (PPM/PGM/PBM), XPM, LBM, PCX, GIF, JPEG, PNG, TGA, TIFF, and simple SVG formats. or SDL_Surface *IMG_Load_RW(SDL_RWops *src, int freesrc); or SDL_Surface *IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, char *type);. where type is a string specifying the format (i.e. "PNG" or "pcx"). Note that IMG_Load_RW cannot load TGA images.

            kandi-support Support

              SDL_image has a low active ecosystem.
              It has 346 star(s) with 128 fork(s). There are 23 watchers for this library.
              It had no major release in the last 12 months.
              There are 23 open issues and 237 have been closed. On average issues are closed in 39 days. There are 3 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of SDL_image is release-2.6.3

            kandi-Quality Quality

              SDL_image has 6128 bugs (0 blocker, 0 critical, 2352 major, 3776 minor) and 10514 code smells.

            kandi-Security Security

              SDL_image has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              SDL_image code analysis shows 0 unresolved vulnerabilities.
              There are 1 security hotspots that need review.

            kandi-License License

              SDL_image is licensed under the Zlib License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              SDL_image releases are available to install and integrate.
              Installation instructions are not available. Examples and code snippets are available.
              It has 27061 lines of code, 31 functions and 145 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of SDL_image
            Get all kandi verified functions for this library.

            SDL_image Key Features

            No Key Features are available at this moment for SDL_image.

            SDL_image Examples and Code Snippets

            No Code Snippets are available at this moment for SDL_image.

            Community Discussions


            How to build SDL_Image from FetchContent?
            Asked 2022-Mar-16 at 17:01

            I'm attempting to build a C++ program with SDL2 and SDL_Image using CMake by fetching them from their respective GitHub repositories; and it works for the most part! When I ran my code with SDL2 everything built fine, and when I added the code for SDL_Image everything compiled without a problem.

            However, things break when I try to add SDL_Image. I get:



            Answered 2022-Mar-16 at 17:01

            There are two problems with your CMake file:

            GIT_TAG release-2.0.5

            If you look at the SDL_Image repo at that tag, there's no CMakeLists.txt file. That is indeed the most recent tag, though. But fortunately, according to the docs you can use a git SHA for GIT_TAG. With the most recent git SHA at the time of writing, that would look like this:

            GIT_TAG 97405e74e952f51b16c315ed5715b6b9de5a8a50

            The other error is that SDL2_image-static doesn't exist. You need to change that in your set(SDL_LIBRARIES ...) line to just SDL2_image.

            With those two changes, I'm able to #include SDL_Image.h.



            Why doesn't my SDL2 code display images with SDL_Texture*
            Asked 2022-Mar-08 at 16:50

            I have a C++ project where I'm initially trying to display a PNG image to the screen.

            This is my code.




            Answered 2022-Mar-08 at 16:50

            I think that the call to SDL_CreateTextureFromSurface fails because it is called before SDL_CreateWindow and SDL_CreateRenderer, thereby initializing texture to NULL.

            Please move the initizalization of texture (and image) to after window and renderer are initialized.

            To further help with such issues, please check if the result of SDL functions != NULL and print SDL_GetError() to get more information about what went wrong.



            How to link SDL_ttf and SDL_image libraries using cmake in windows?
            Asked 2022-Feb-06 at 20:54

            I have trouble including and linking SDL_ttf and SDL_image to my project. I have a cmake file that works only for SDL and SDL_gfx on Clion. I guess the problem is from the cmake file. I got several errors when I build the project: undefined reference to `FUNCTION'

            The libraries which I used for my project:

            sdl2 folder (where library files are located) tree:



            Answered 2022-Feb-06 at 20:54

            I found the problem:

            1. In sdl2-image-lib and sdl2-ttf-lib directory there are libSDL2_image.dll.a and libSDL2_ttf.dll.a binary files that must be linked instead of libSDL2_image.a and libSDL2_ttf.a files.

            2. dll files must be copied to the directory where the EXE file is located. the dll files are in bin folders of the library.

            The libraries which I used for my project:

            and the modified CMakeLists.txt:



            Why isn't my renderer initialising in SDL2?
            Asked 2022-Jan-31 at 10:44

            Sorry for the lot of code, I don't like to put everything in one file and you need to see all the files. Anyway, the problem is that the init function in the Window class (initialized in SDL.cpp and declared in SDL.hpp), the renderer isn't working? Of course, that means that the images and textures will also not load, but I'm thinking this is all because of the renderer failing. Can you figure out why it's doing this and help me out?

            If I haven't explained it very well just let me know, thanks.




            Answered 2022-Jan-31 at 10:39
            1. SDL.hpp contains two SDL_Renderer* members: renderer and gRenderer. Remove the former and update this line in SDL.cpp to use the latter:



            SDL2 Linking errors? Undefined reference to SDL_main
            Asked 2022-Jan-02 at 22:08

            I am trying to figure out how to use SDL2 on VSCODE. I've got basic code and windows working but when I add additional functions and files, it doesn't seem to want to compile. I'm new to this but I thought I included the necessary things in my headers and in my build.

            For the main



            Answered 2022-Jan-02 at 22:08

            You can use g++ to build your program in two ways:

            • In two stages, first by compiling the individual .cpp files as translation units to object files .o and then in another invocation of g++ to link them together into an executable

            • Or you can use a single invocation of g++ to compile and link the executable.

            You are currently trying to mix the two modes somehow. For the single-invocation build you should call g++ only once and add all .cpp files to it:



            Expand FindModule.cmake logic with a wrapper file
            Asked 2021-Dec-04 at 20:28

            There are a lot of libraries' packages which do not provide a CMake config file, and in order to find and use them with cmake, one would have to resort to using a FindPackage.cmake script. Some scripts (i.e. SDL) are available within the cmake itself, so finding a package is relatively easy.
            Though in my case, SDL-searching scripts (SDL, SDL_image, SDL_mixer) are available almost since the dawn of modern cmake (at least 3.1), they do not provide the means for the modern approach - they do not define imported cmake Targets. SDL as a target is available only since 3.19, and it does not define IMPORTED_LOCATION property.
            So, the logical thing is to define those targets and properties.
            A naive approach would possibly be to just copy the contents of FindSDL.cmake from a newer cmake bundle and paste it with modifications.
            But I would like to keep those files from a cmake bundle (or another good enough script from external source) intact and just wrap them.
            So, the main CMakeLists.txt would be like:



            Answered 2021-Nov-14 at 20:04

            The first thing that comes to mind is to delete the current path from CMAKE_MODULE_PATH before calling find_package(), and then restore it.



            How to remove an image from a widget gtk c?
            Asked 2021-Nov-30 at 21:09

            I am currently working on an user interface with gtk. What I've done for now is that you can select an image from your file and display it with the button "open". The problem is that when I open a second image it add the image to the window without removing the current one. I would like to know how to change the displayed image when the user choose to open another image. My code:



            Answered 2021-Nov-30 at 21:09

            You can try multiple approaches.

            1. Remove old image and add new image
              Use gtk_container_get_children to retrieve your old image if present and remove it using gtk_container_remove. Then add as you have done before.

            2. You can replace the content of the image
              Again, use gtk_container_get_children to retrieve your old image if present and replace the content using gtk_image_set_from_pixbuf.

            3. (additionally to 1 or 2 above)
              You can also create an image already when you create the container and use the pointer to that image as user_data for your callback. That would remove the need for retrieving the child from your container.



            How did a Renderer pass to the rest of the classes?
            Asked 2021-Nov-26 at 21:51

            I have a Game class that through its constructor initializes the window and the SDL renderer. I understand from what I read so far (not much) that there should only be one renderer for each window.

            Then I have a Player class where through the constructor I want to load a texture with an image, for which I need the renderer, therefore, I put the renderer as the constructor parameter and in this way I am forced to pass from the constructor from Game the renderer to the Player constructor (since it instantiated the Player class in The Game class).

            The fact is that the renderer is passed before being created, and I don't know if there is another way to invoke the constructor of the Player from Game, since it forces me to put it that way. I leave the code for you to see:

            Game class:



            Answered 2021-Nov-26 at 21:51

            The only thing I can think of is not to create the texture through the constructor, but through a function, but it wouldn't be the right thing to do, right? that's what the constructor is for

            Right. However, SDL is a C library so it doesn't use C++ RAII, which is responsible for construction/destruction. First, we call constructors in the member initializer list (: foo{}, bar{foo}), which provides us with fully constructed member objects. Then, we do whatever we want in the constructor body ({ use(foo); }). However, in your case the constructor body ({ SDL_CreateWindowAndRenderer(...); } ) is needed before member initialization (: player{renderer}).

            The question is how to call the Player constructor after the renderer has been created?

            Construct all that SDL_ stuff before constructing the Player:



            Is there any possible way to resize an PNG image in SDL2?
            Asked 2021-Nov-23 at 16:00

            I am using SDL2 and SDL_image.h. My current attempt was trying to fit the .PNG image in a SDL_Rect which only hid my image in the rectangle's area and thus did not work. I was following this tutorial to load the .PNG image. I'm looking to make the image stretch to the same size of the screen which is 640x480. This was my attempt:



            Answered 2021-Nov-23 at 16:00

            Looking at documentation maybe you should try using SDL_BlitScaled instead of SDL_BlitSurface



            SDL_image.h fatal error: No such file or directory
            Asked 2021-Aug-06 at 01:23

            I am using Debian and i downloaded SDL_image.h succesfully. (sudo apt-get install libsdl2-image-dev)

            I wrote a simple code to tell if it sees PNG images, but I'm getting an error.




            Answered 2021-Jul-31 at 07:21

            Edit: It seems from your latest edit that you've [already] solved your problem, so the following may be moot.

            Install the development package for SDL2_image [which it appears you've already done--sigh].

            On fedora, this is:


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install SDL_image

            You can download it from GitHub.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone libsdl-org/SDL_image

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link