Проблемы с генератором миниатюр GD

Я использую PHP для создания эскизов. Проблема в том, что у меня есть заданная ширина и высота, которым должны быть миниатюры, и часто время растяжения изображений.

Я бы хотел, чтобы изображение оставалось в тех же пропорциях и просто черным наполнителем (или любым цветом) либо слева, и справа для высоких изображений, либо сверху и снизу для широких изображений.

Вот код, который я использую в настоящее время: (немного окунулся в читаемость)

$temp_image_file = imagecreatefromjpeg("http://www.example.com/image.jpg"); list($width,$height) = getimagesize("http://www.example.com/image.jpg"); $image_file = imagecreatetruecolor(166,103); imagecopyresampled($image_file,$temp_image_file,0,0,0,0,166,103,$width,$height); imagejpeg($image_file,"thumbnails/thumbnail.jpg",50); imagedestroy($temp_image_file); imagedestroy($image_file);