0
我嘗試調整圖像的大小並保存圖像,當圖像大於420(寬度和高度)時,圖像應該縮小,但顯示爲黑色。這裏有2個函數borrar_imagenes和subir_imagen。可能是什麼問題呢??爲什麼圖像保存爲黑色?使用PHP調整圖像大小的錯誤 - 圖像顯示爲黑色
<?php
function borrar_imagenes($ruta,$extension){
switch($extension){
case ".jpg":
if(file_exists($ruta.".png"))
unlink($ruta.".png");
if(file_exists($ruta."gif"))
unlink($ruta.".gif");
break;
case ".gif":
if(file_exists($ruta.".png"))
unlink($ruta.".png");
if(file_exists($ruta."jpg"))
unlink($ruta.".jpg");
break;
case ".png":
if(file_exists($ruta.".jpg"))
unlink($ruta.".jpg");
if(file_exists($ruta."gif"))
unlink($ruta.".gif");
break;
}
}
function subir_imagen($tipo,$imagen,$email)
{
if(strstr($tipo,"image"))
{
if(strstr($tipo,"jpeg")){
$extension = ".jpg";
}else if(strstr($tipo,"gif")){
$extension = ".gif";
}else if(strstr($tipo,"png")){
$extension = ".png";
}
$ancho_real = 420;
$alto_real = 420;
$tamaño_imagen = getimagesize($imagen);
$ancho_imagen = $tamaño_imagen[0];
$alto_imagen = $tamaño_imagen[1];
;
if($ancho_imagen > $ancho_real || $alto_imagen > $alto_real){
$imagen_reajustada = imagecreatetruecolor($ancho_real,$alto_real);
switch($extension){
case ".jpg":
$imagen_final = imagecreatefromjpeg($imagen);
$nombre_img="../img/fotos/".$email;
$nombre_img_ext="../img/fotos/".$email.$extension;
imagecopyresampled($imagen_reajustada,$imagen_final,0,0,0,0,$nuevo_ancho,$nuevo_alto,$ancho_imagen,$alto_imagen);
imagejpeg($imagen_reajustada,$nombre_img_ext,100);
borrar_imagenes($nombre_img,".jpg");
break;
case ".gif":
$imagen_final = imagecreatefromgif($imagen);
$nombre_img="../img/fotos/".$email;
$nombre_img_ext="../img/fotos/".$email.$extension;
imagecopyresampled($imagen_reajustada,$imagen_final,0,0,0,0,$nuevo_ancho,$nuevo_alto,$ancho_imagen,$alto_imagen);
imagegif($imagen_reajustada,$nombre_img_ext,100);
borrar_imagenes($nombre_img,".gif");
break;
case ".png":
$imagen_final = imagecreatefrompng($imagen);
$nombre_img="../img/fotos/".$email;
$nombre_img_ext="../img/fotos/".$email.$extension;
imagecopyresampled($imagen_reajustada,$imagen_final,0,0,0,0,$nuevo_ancho,$nuevo_alto,$ancho_imagen,$alto_imagen);
imagepng($imagen_reajustada,$nombre_img_ext);
borrar_imagenes($nombre_img,".png");
break;
}//switch
}else{
$destino = "../img/fotos/".$email.$extension;
move_uploaded_file($imagen,$destino) or die("No se pudo subir la imagen al servidor");
borrar_imagenes("../img/fotos/".$email,$extension);
}
$imagen = $email.$extension;
return $imagen;
}else{
return false;
}
}
?>
你的錯誤處理絕對爲零,並且簡單地假定所有的GD調用都成功了。這不是一個好主意。 –