13th_Star Posted March 1, 2007 Share Posted March 1, 2007 I have recently made two functions one to resize an image and one to crop it, only some times when I try to upload photos at a certain size lets say 800x600px, it gives me some errors and just shows the pictures as plain black, I can't really work out whats up with it so if someone does not mind could they take a look at my functions. thanks. the errors: Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/bpotts/public_html/image_functions.php on line 90 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/bpotts/public_html/image_functions.php on line 48 the functions: ( i have marked what line 48 and 90 are) <?php //Image functions// Crop, Reisize. function ResizeImage($nw, $nh, $source, $stype, $dest) { $size = getimagesize($source); $w = $size[0]; $h = $size[1]; switch($stype) { case 'gif': $simg = imagecreatefromgif($source); break; case 'jpg': $simg = imagecreatefromjpeg($source); break; case 'jpeg': $simg = imagecreatefromjpeg($source); break; case 'png': $simg = imagecreatefrompng($source); break; } if ($w > $nw) { $n_h = $h * ($nw/$w); $n_w = ($n_h / $h) * $w; } else if ($w < $nw && $h > $nh) { $n_h = $w * ($nh/$h); $n_w = ($n_w / $w) * $h; } else { $n_h = $h; $n_w = $w; } $dimg = imagecreatetruecolor($n_w, $n_h); imagecopyresampled($dimg,$simg,-0,0,0,0,$n_w,$n_h,$w,$h); imagejpeg($dimg,$dest, "100"); } //this is line 48! function CropImage($nw, $nh, $source, $stype, $dest) { $size = getimagesize($source); $w = $size[0]; $h = $size[1]; switch($stype) { case 'gif': $simg = imagecreatefromgif($source); break; case 'jpg': $simg = imagecreatefromjpeg($source); break; case 'jpeg': $simg = imagecreatefromjpeg($source); break; case 'png': $simg = imagecreatefrompng($source); break; } $dimg = imagecreatetruecolor($nw, $nh); $wm = $w/$nw; $hm = $h/$nh; $h_height = $nh/2; $w_height = $nw/2; if($w > $h) { $adjusted_width = $w / $hm; $half_width = $adjusted_width / 2; $int_width = $half_width - $w_height; imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h); } elseif(($w < $h) || ($w == $h)) { $adjusted_height = $h / $wm; $half_height = $adjusted_height / 2; $int_height = $half_height - $h_height; //THIS IS LINE 91 imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h); } else { imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h); } imagejpeg($dimg,$dest, "100"); } ?> Quote Link to comment Share on other sites More sharing options...
marhoons Posted March 1, 2007 Share Posted March 1, 2007 hello... use..: <?php // img need reassimple $filename = '1.jpg'; // get new imag time stamp name $tt= time(); $t="$tt.jpg"; // Set a maximum height and width $width = 400; $height = 500; // Content type header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); $ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output imagejpeg($image_p, $t, 100); ?> check it please... Quote Link to comment Share on other sites More sharing options...
13th_Star Posted March 1, 2007 Author Share Posted March 1, 2007 Hey that worked great on the ResizeImage() Function, its just the CropImage() I'm still stuck with now. Quote Link to comment Share on other sites More sharing options...
13th_Star Posted March 1, 2007 Author Share Posted March 1, 2007 Hey I worked out the crop image this topic is done with Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.