I am uploading image to server. In whatever format i upload the image it should be converted to .png format but in my case it is giving following error and i am working on codeigniter. In core php it is working properly.
Message: Division by zero Filename: controllers/Upload_user_image.php
Message: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions
Message: imagesavealpha() expects parameter 1 to be resource, boolean given
Message: imagecolorallocatealpha() expects parameter 1 to be resource, boolean given
Message: imagefill() expects parameter 1 to be resource, boolean given
Message: imagecopyresampled() expects parameter 1 to be resource, boolean given > Message: Undefined variable: c_image
Message: imagepng() expects parameter 1 to be resource, boolean given
Controller:
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');
}
This is my form:
<?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>