El codigo que está a continuación hace lo siguiente:
En el paso 1 reescala la imagen
En el paso 2 pega la imagen redimensionada sobre otra que mide 250 x 250
En el paso 3 agrega una marca de agua
Supongamos que la imagen original mide 560px x 960px al redimensionarla queda de 130 x 250 pixeles, en el paso 2 toma esta imagen y la "pega" sobre otra 250 x 250 de fondo blanco (centrandola horizontal y verticalmente).
El problema es que el fondo queda de color azul, con otras fotos el fondo queda de color negro. ¿Porque pasa esto si la imagen "base" tiene el fondo blanco. (yo necesito que el fondo sea blanco).

PD: la imagen del parámetro $base es un gif de 250 x 250 de color blanco.
<?PHP
$base = "base.gif";
PASO 1:
$altura = 250;
$ratio = ($dimensiones[1] / $altura);
$anchura = round($dimensiones[0] / $ratio);
$image = imagecreatetruecolor($anchura,$altura); //crea la nueva imagen
$FFF = imagecolorallocate($image, 255,255,255);
imagefill($image, 0, 0, $FFF);
imagecopyresampled ($image, $img, 0, 0, 0, 0, $anchura, $altura, $dimensiones[0], $dimensiones[1]);//reescala
imagejpeg($image,"$dir$image_name", $c1);
PASO 2:
//Pega el resultado sobre la base
$img = $dir.$image_name;
$im1 = imagecreatefromjpeg($img);
$ancho = imagesx($im1);
$alto = imagesy($im1);
$xpos = (250 - $ancho) / 2;
$ypos = (250 - $alto) / 2;
$im2 = imagecreatefromgif($base);
$im2 = imagecreatetruecolor (250,250);
imagecopy ($im2, $im1,$xpos,$ypos,0, 0,$ancho,$alto);
imagejpeg($im2,"$dir$image_name",95);
PASO 3:
//Crea el watermark
$pos = explode("-",$pos); //posición horizontal y vertical del watermark:
$wmhorz = $pos[0];
$wmvert = $pos[1];
$logo = imagecreatefrompng($watermark);
$margen = 0; //distancia entre el watermark y la orilla
$logoW =imagesx($logo); //Anchura del logo
$logoH =imagesy($logo); //Altura del logo
$anchura = 250;
imagecopy($im2, $logo, 0, 0, 0, 0, 250, 250); //Pone el logo
imagejpeg($im2,"$dir$image_name", 95);
?>
Foto original:

Resultado:

como pueden darse cuenta en el "resultado" el fondo es de color negro siendo que la imagen "$base" es blanca