This ticket relates to #4151, #4709 and #5304
I've cleaned the file up to reduce duplicated code, Added PHPDoc comments, and included mentioned tickets within the cleanup.
Notes:
* function get_udims() duplicated wp_shrink_dimensions(), Switched it to use wp_shrink_dimensions() instead.
* It appears that get_udims() is not used anywhere else in WP.
* depreciated 3rd param($effect) to wp_create_thumbnail() as it isnt used within the function.
* IMAGETYPE_XXX introduced with PHP 4.3.0 it appears, Added to compat.php.
* The inline documentation may not be the best, And doesnt include Long descriptions for most of the functions.
* Most functions should return a WP_Error object instead on error, For most compatibilit current patch follows previous error handling route.