Starting in on making games and working with graphics, I'd stay away from "engines" as they will teach you very little, or nothing at all about how the code needed works. An engine is designed to do all the work for you, which is great if it is designed well(fast and memory efficient) however when learning you need to code these things for yourself and be able to play with them to understand how this code effects performance and the effects generated by what you have put into the functions you wrote. Engines eliminate this for you as a convenience which makes them better suited to more experienced developers who want to cut time from a project than have to do what they already have done before and know well.

As a first library you want to pick one that will give you the most control over your code. You ware looking for low-level functionality of the code yet simple enough so as to not make the learning process tedious. SDL based libraries, such as JEDI-SDL are great for this. There are some libraries or alternately called "frameworks" that go more towards the engine ideaology, but you want to avoid these too for now. They serve the best of both worlds, yet they still are designed to take away from those things you want to learn at the beginning.

After you have done the basics with a good starter library you may want to move onto something (engine, framework, library) that will help speed development in a project that popped into your head and excites you. If you are using this project to learn something about a different concept of programming, make sure that you choose a library that doesn't take away from you being able to learn that concept for convenience or your efforts will be stunted. On the flip-side you may want to use such a library if the code is open source to see how they have implemented it. It is still best to try your hand at your new project without the assisting code before hand.

Well there is my buck and a quarter. (inflation)