Use GIMP... free and powerful enough for average user.
As Gil said, unless you have a good resolution (i.e. a lot of pixels rows) most images won't show up good. I have a 16x60 tree and any image I tried to use didn't show up well. What I ended up doing was to use GIMP to scale the image to my resolution of my tree. The image will be blurry, but it is enough to see the outlines. Then create a new layer and draw pixel by pixel with the pencil tool by tracing the blurred original image. When you export, ensure you disable the original image layer. When my drawn images appear on my tree, they are still a little blurry, but are recognizable. I will probably need to go to a 32x60 to get a better resolution, but not sure I'm ready to do that yet.
The other suggestion I have... my images where 16x60 or something like that... I used the entire 16 pixels wide. If you can get away with using 50% of your width, maybe 75%, then I would suggest that. I created an Olaf image for animated mouth. He was "mostly" recognizable, but he was spread across the tree. I think it would look better if there was more room on the sides.
Here are two examples of what I drew by hand... Olaf and a character for when the "All I want for christmas is my 2 front teeth" song comes on.
EDIT: after posting this... I now see that one of the images was 22x37... not sure why I did that

I think maybe it was because I was having it in motion whereas Olaf is stationary singing.