brent123456 Posted July 2, 2007 Share Posted July 2, 2007 I am trying to make a thumbnail image but I keep getting all these errors. Warning: imagesx(): supplied argument is not a valid Image resource in C:\myxampp\xampp\htdocs\seedguys\site_pages\includes\processaddseeds.php on line 147 Warning: imagesy(): supplied argument is not a valid Image resource in C:\myxampp\xampp\htdocs\seedguys\site_pages\includes\processaddseeds.php on line 148 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\myxampp\xampp\htdocs\seedguys\site_pages\includes\processaddseeds.php on line 163 This is the code that I am using to make the thumbs, I have GD install and working I ran this script to test.. <?php if (function_exists('ImageCreateTrueColor')) { echo 'ok you already have GD'; }else{ echo 'sorry, it seems that GD is not installed'; } ?> It is saying that it is ok and I have GD. Here is my code if (is_uploaded_file($_FILES['image']['tmp_name'])) { (list($name, $ext) = explode('.', $_FILES['image']['name'])); // get the image ext $allowed_extensions = array("gif", "jpg", "jpe", "jpeg"); if (!in_array($ext, $allowed_extensions)) { print 'This file is no allow for upload, your seeds were added by file was not uploaded'; $i = ''; }else{ $image_name = md5(uniqid(rand())).".$ext"; // build the new file name if (move_uploaded_file($_FILES['image']['tmp_name'], "includes/uploaded_images/seed_images/$image_name")) { // move file here echo 'The file has been uploaded!'; $image_name = 'includes/uploaded_images/seed_images/' . $image_name; $thumb_name = $image_name; $size = '100'; createthumb($image_name, $thumb_name ,$size,$size); } else { //the file couldn't be moved echo '<div class="error">The file could not be moved.</div>'; $i = ''; } $i = $image_name; } } else { $i = ''; } here is the function... function createthumb($name,$filename,$new_w,$new_h){ $system=explode('.',$name); if (preg_match('/jpg|jpeg/',$system[1])){ $src_img=imagecreatefromjpeg($name); } if (preg_match('/png/',$system[1])){ $src_img=imagecreatefrompng($name); } if (preg_match('/gif/',$system[2])){ $src_img=imagecreatefromgif($name); } $old_x=imagesx($src_img); $old_y=imagesy($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); if (preg_match("/png/",$system[1])) { imagepng($dst_img,$filename); } else { imagejpeg($dst_img,$filename); } createthumb($dst_img ,'includes/uploaded_images/' . $dst_img ,100,100); imagedestroy($dst_img); imagedestroy($src_img); if (preg_match("/gif/",$system[2])) { imagegif($dst_img,$filename); } else { imagejpeg($dst_img,$filename); } createthumb($dst_img ,'includes/uploaded_images/' . $dst_img ,100,100); imagedestroy($dst_img); imagedestroy($src_img); } I hope someone can help me out with this.. Thanks Link to comment https://forums.phpfreaks.com/topic/58093-trouble-trying-to-generate-a-thumbnail-image/ Share on other sites More sharing options...
no_one Posted July 2, 2007 Share Posted July 2, 2007 Hmm. Ever consider that none of the matches succeeded? Or maybe one did, but the image was never created/loaded? Try testing $src_img to see if it is set before the imagesx/sy, see what happens. Or do print out something when and/or if an image is created. :S If not, then guess I'd need to look again.. heh. Also, I'm confused as to why you use $system[1] for the first 2 file-ext types but $system[2] for the gif? ??? Link to comment https://forums.phpfreaks.com/topic/58093-trouble-trying-to-generate-a-thumbnail-image/#findComment-288061 Share on other sites More sharing options...
brent123456 Posted July 3, 2007 Author Share Posted July 3, 2007 function createthumb($name,$filename,$new_w,$new_h){ $system=explode('.',$name); if (preg_match('/jpg|jpeg/',$system[1])){ $src_img=imagecreatefromjpeg($name); } if (preg_match('/png/',$system[1])){ $src_img=imagecreatefrompng($name); } if (preg_match('/gif/',$system[1])){ $src_img=imagecreatefromgif($name); } echo $src_img; if ($src_img) { $old_x=imagesx($src_img); $old_y=imagesy($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); echo $dst_img; if (preg_match("/png/",$system[1])) { imagepng($dst_img,$filename); } else { imagejpeg('includes/uploaded_images/seed_images/thumbs/' . $dst_img,$filename); } createthumb('includes/uploaded_images/' . $dst_img ,'includes/uploaded_images/seed_images/thumbs/' . $dst_img ,100,100); if (preg_match("/gif/",$system[1])) { imagegif($dst_img,$filename); } else { imagejpeg('includes/uploaded_images/seed_images/thumbs/' . $dst_img,$filename); } createthumb('includes/uploaded_images/' . $dst_img ,'includes/uploaded_images/seed_images/thumbs/' . $dst_img ,100,100); } I added in an if statement to check the $scr_img and it now makes a thumbnail but it is overwriting the original image with the thumb. Is there anyway to change the thumb directory so i doesn't overwrite the main image file? All I want to do is to create a thumbnail from the original in a new directory and keep the original one in the same folder. I wish I knew how to get this. Link to comment https://forums.phpfreaks.com/topic/58093-trouble-trying-to-generate-a-thumbnail-image/#findComment-288509 Share on other sites More sharing options...
brent123456 Posted July 3, 2007 Author Share Posted July 3, 2007 bump... Link to comment https://forums.phpfreaks.com/topic/58093-trouble-trying-to-generate-a-thumbnail-image/#findComment-288756 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.