它不适用于png 创建了一个拇指png,但没有数据,如空数据:D 与jpg,jpeg仍然工作没有错误 为什么?
function thumbnail($pathtoFile,$thumWidth,$pathtoThumb) {
//infor of image
$infor = pathinfo($pathtoFile);
// Setting the resize parameters
list($width, $height) = getimagesize($pathtoFile);
$modwidth = $thumWidth;
$modheight = floor( $height * ( $modwidth / $width ));
// Resizing the Image
$thumb = imagecreatetruecolor($modwidth, $modheight);
switch(strtolower($infor['extension'])) {
case 'jpeg':
case 'jpg':
$image = imagecreatefromjpeg($pathtoFile);
break;
case 'gif':
$image = imagecreatefromgif($pathtoFile);
break;
case 'png':
$image = imagecreatefrompng($pathtoFile);
break;
}
imagecopyresampled($thumb, $image, 0, 0, 0, 0, $modwidth,
$modheight, $width, $height);
switch(strtolower($infor['extension'])) {
case 'jpeg':
case 'jpg':
imagejpeg($thumb,$pathtoThumb, 70);
break;
case 'gif':
imagegif($thumb,$pathtoThumb, 70);
break;
case 'png':
imagepng($thumb,$pathtoThumb, 70);
break;
}
//destroy tmp
imagedestroy($thumb);
}
答案 0 :(得分:2)
它不起作用,因为imagepng()
第三个参数必须介于0和9之间。它表示png图像的压缩级别(0表示没有压缩)。 70不是有效值。
imagepng($thumb, $pathtoThumb, 9);
此外,imagegif()
只接受两个参数。从技术上讲,您的电话应该是:
imagegif($thumb, $pathtoThumb);