调整图像大小不适用于 png 图像
它不适用于 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);
}
it not work with png
created a thumb png but haven't data , like null data :D
with jpg , jpeg still working without error
why ?
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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它不起作用,因为
imagepng()
第三个参数必须介于 0 和 9 之间表示png图像的压缩级别(0表示不压缩)。 70 不是有效值。另外,
imagegif()
仅接受两个参数。从技术上讲,您的电话应该是:It isn't working because
imagepng()
third argument must be between 0 and 9. It indicates the compression level of the png image (0 being no compression). 70 is not a valid value.Also,
imagegif()
only accepts two arguments. Technically, your call should be: