una funcion muy util para imagenes:
Código PHP:
function create_tb($img_o,$w_tb,$h_tb,$bg_color){
$img_return=imagecreatetruecolor($w_tb,$h_tb);
if(isset($bg_color) && $bg_color != ""){
$color= imagecolorallocate($img_return, hexdec(substr($bg_color,0,2)), hexdec(substr($bg_color,2,2)), hexdec(substr($bg_color,4,2)));
}else{
$color= imagecolorallocate($img_return, 255, 255, 255);
}
imagefilledrectangle($img_return, 0, 0, $w_tb, $h_tb, $color);
$wo=imagesx($img_o);
$ho=imagesy($img_o);
if($wo >= $ho){
$wtb_copy=$w_tb;
$htb_copy=($ho*(($w_tb*100)/$wo))/100;
$xtb_copy=0;
$ytb_copy=($h_tb/2)-($htb_copy/2);
}elseif($ho > $wo){
$wtb_copy=($wo*(($h_tb*100)/$ho))/100;
$htb_copy=$h_tb;
$xtb_copy=($w_tb/2)-($wtb_copy/2);
$ytb_copy=0;
}
imagecopyresampled($img_return, $img_o, $xtb_copy, $ytb_copy, 0, 0, $wtb_copy, $htb_copy, $wo, $ho);
return $img_return;
}
y luego validas antes de crear la imagen, este crea 2 imagenes 1 chica y otra grande:
Código PHP:
$valido = true;
$file=$_FILES["file"];
if($file["type"]=="image/pjpeg" || $file["type"]=="image/jpg" || $file["type"]=="image/jpeg"){
if($file["size"]>=5120000){
$valido = false;
echo "tamaño incorrecto";
}
}else{
$valido = false;
echo "tipo incorrecto";
}
if($valido){
$imgGrande=imagecreatefromjpeg($file["tmp_name"]);
$imggrande=create_tb($imgGrande,150,150,"CCE6FF");
$imgChica=create_tb($imgGrande,60,60,"CCE6FF");
imagejpeg($imggrande,"carpeta/imagen_".($ID).".jpg",60);
imagejpeg($imgChica,"carpeta/imagen_".($ID).".jpg",60);
}
}