我正在将图像上传到服务器。以任何格式我上传图像它应该被转换为.png格式,但在我的情况下,它给出了以下错误,我正在处理codeigniter。在核心的PHP它正在正常工作。无法在Codeigniter中将图像转换为.png格式
Message: Division by zero Filename: controllers/Upload_user_image.php
消息:imagecreatetruecolor()[function.imagecreatetruecolor]: 无效图像尺寸
消息:imagesavealpha()预计参数1是资源,布尔 给出
消息:imagecolorallocatealpha ()期望参数1是资源, 布尔给定
消息:image补()预计参数1是资源,布尔给出
Message: imagecopyresampled() expects parameter 1 to be resource, boolean given > Message: Undefined variable: c_image
消息:imagepng()预计参数1是资源,布尔给出
控制器:
function do_upload()
{
$cimg = $_FILES['user_file']['tmp_name'];
$extension = pathinfo($cimg, PATHINFO_EXTENSION);
$srcFile_c = $_FILES['user_file']['tmp_name'];
/*function imageToPng($srcFile, $maxSize = 100) {*/
list($width_orig, $height_orig, $type) = getimagesize($srcFile_c);
$maxSize = 100;
// Get the aspect ratio
$ratio_orig = $width_orig/$height_orig;
$width = $maxSize;
$height = $maxSize;
// resize to height (orig is portrait)
if ($ratio_orig < 1)
{
$width = $height * $ratio_orig;
}
// resize to width (orig is landscape)
else
{
$height = $width/$ratio_orig;
}
// Temporarily increase the memory limit to allow for larger images
ini_set('memory_limit', '32M');
$u_name='pawan';
switch (@$type)
{
case IMAGETYPE_GIF:
$c_image = imagecreatefromgif($srcFile_c);
break;
case IMAGETYPE_JPEG:
$c_image = imagecreatefromjpeg($srcFile_c);
break;
case IMAGETYPE_PNG:
$c_image = imagecreatefrompng($srcFile_c);
break;
default:
throw new Exception('Unrecognized image type ' . @$type);
}
// create a new blank image
$new_c_Image = imagecreatetruecolor($width, $height);
imagesavealpha($new_c_Image, true);
$trans_colour = imagecolorallocatealpha($new_c_Image, 0, 0, 0, 127);
imagefill($new_c_Image, 0, 0, $trans_colour);
imagecopyresampled($new_c_Image, $c_image, 0, 0, 0, 0, $width, $height, $width_orig,$height_orig);
$getpng = imagepng($new_c_Image, './uploads/' . "img_" . $u_name . '.png');
}
这是我的表单:
<?php echo form_open_multipart('Upload_user_image/do_upload');?>
<input type="file" name="userfile" />
<input type="text" name="password"/>
<input type="submit" value="upload" />
</form>
您是否尝试过阅读错误以查看错误发生的位置?关于'imageavealpha'的一个看起来相当明显的一开始,因为你传递'true'而不是它所期望的资源... – Jonnus
我检查过它在核心php中工作正常,但是当我在codeigniter中实现我的代码时不管用。请指导我。 – user3653474