我有这个代码可以创建两个新的拇指,它可以与jpg图像完美配合,但它会在上传时提供黑色的png和gif文件!
你能告诉我这里有什么问题吗? 我该怎么办?...谢谢
$stempFile = $_FILES['Filedata']['tmp_name'];
$stargetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$stargetPath = str_replace('//','/',$stargetPath);
$extension = array_pop( explode(".", $_FILES['Filedata']['name']) );
$stargetFile = $stargetPath . basename($_FILES['Filedata']['name'],'.' .$extension) . '_s.' . $extension;
tamano_nuevo_foto($tempFile, 800, $targetFile);
功能:
function tamano_nuevo_foto($im_or,$ancho_nv,$dir_nv)
{
$img = imagecreatefromjpeg($im_or);
$datos = getimagesize($im_or);
$ancho = $datos[0];
$alto = $datos[1];
if ($ancho > $ancho_nv) //Si la imagen no lelga al máximo no la tocamos.
{
$prop = $alto / $ancho; /*Calculo la proporcion entre la or y la nv (lo miltiplicamos por mil para evitar problemas con decimales */
$alto_nv = round($ancho_nv * $prop); //Sacamos la nueva altura
}
else
{
$ancho_nv = $ancho;
$alto_nv = $alto;
}
$im_nv = imagecreatetruecolor($ancho_nv,$alto_nv);
imagecopyresampled($im_nv, $img, 0, 0, 0, 0, $ancho_nv, $alto_nv, $ancho, $alto);
imagejpeg($im_nv,$dir_nv);
imagedestroy($im_nv);
}
答案 0 :(得分:0)
我首先尝试将其保存为PNG 24。
如果不起作用,请查看以下内容:
http://www.akemapa.com/2008/07/10/php-gd-resize-transparent-image-png-gif/
PNG Transparency Resize with SimpleImage.php Class
http://www.sitepoint.com/forums/showthread.php?280436-PNG-turns-black-on-upload
JPEG Images Turn all black when converting from a PNG with PHP