Как и предполагали другие, последние два параметра должны иметь исходный размер изображения.
Если $ dir - ваше имя файла, вы можете использовать getimagesize , чтобы получить исходные размеры изображения.
Вы можете использовать imagecopyresized или imagecopyresampled. Разница в том, что imagecopyresized будет копировать и изменять размер, в то время как imagecopyresampled также будет повторно пробовать ваше изображение, что даст лучшее качество.
<?php
$dir = $_GET['dir'];
header('Content-type: image/jpeg');
$create = imagecreatetruecolor(150, 150);
$img = imagecreatefromjpeg($dir);
list($width, $height) = getimagesize($dir);
imagecopyresampled($create, $img, 0, 0, 0, 0, 150, 150, $width, $height);
imagejpeg($create, null, 100);
?>