I've never coded in Tk, so this may not apply. In fact, I've never coded against Image::Magic, but I understand that that module is designed to do exactly that. I have used its command line tools, which will convert images from one format to another and resize images as needed.