Modified "Keep Image Proportions 1.2" to work flawlessly with osC 2.2MS1.
Two-step guide to keep image proportions within the limits set in shop configuration.
De-/activateable via shop config.
Legend: 
Download

Report
I just combined previous versions to make the entire thing work. Credits to earler contributors.
I uploaded the complete package before testing, it appears that yes it does keep the aspect ratio of the images, although this can be accomplished via store config images, and leaving the height blank, I thought this would improve the thumbnails, with regard to the naff distortion that occurs, however only contribs that use the gd library (Part of your host php installation) will give you nice defined thumbs... blast!!!, this contrib is still good, but it was possibly necessary for earlier versions of osc...
I uploaded an empty text file in order to publish this info..
I have compiled the packaged text file including revised code from
OSC2.2MS2_Keep_Image_Proportions.zip James Crocker 2 Nov 2003
keep image proportions admin
Excelsior 6 Feb 2004
Fix in logic
John Wright 15 Jul 2004
Revised Logic
Özcan Kaymak 6 Sep 2004
if you need anything else, you will have to do what I did, and download all...
happy days....
I added a file for the integration of this with an MS1 install. It was easy enough.
Found that when the image proportions set to true then the horizontal lines that are used in the shopping for the total and the breadcrumb line for the check out don't work. Made the change to the function.
$image_size = @getimagesize($src);
if ($image_size[0] <> 0)
to
$image_size = @getimagesize($src);
if ($image_size[0] > 1)
Revised the logic.
When an images height AND width are smaller than defined in admin, the image was strecthed out. Now it is keeping it's original dimensions.
This is a great package and it works but the last else wasn't necessary and the img print line was in the wrong place. This caused popups not to work. Here is the right code. I commented out the offending wrong line at the end. The author might want to release a new installation package but meanwhile just use the below and his old instructions.
// BEGIN Code Keep Image Proportions
if (tep_not_null($width) && tep_not_null($height))
{
if (IMAGE_CONSTRAIN_PROPORTIONS == 'true')
{
$image_size = @getimagesize($src);
if ($image_size[0] <> 0)
{
$ratio = $width / $image_size[0];
if ($image_size[1]*$ratio > $height)
{
$ratio = $height / $image_size[1];
$width = $image_size[0] * $ratio;
}
else
{
$height = $image_size[1] * $ratio;
}
}
}
$image .= ' width="' . tep_output_string($width) . '" height="' .tep_output_string($height). '"';
}
//else {
// $image .= ' width="' . tep_output_string($width) . '" height="' .tep_output_string($height) . '"';
// }
// END Code Keep Image Proportions
small update to file.
the first step in the original package was missing the actual new code to use. this package corrects that and sets images in the admin area to use the small height when displaying picture so it doesn't mess up the view of your page if the image is big.
this is to be used with Keep Image Proportions 1.3 so the preview images while in admin, etc look right.
Great job on original author! This is the ONLY proportion contribution that actually works.
A slight modification to integrate with OSC2.2MS2.
Modified "Keep Image Proportions 1.2" to work flawlessly with osC 2.2MS1.
Two-step guide to keep image proportions within the limits set in shop configuration.
De-/activateable via shop config.