Page 1 of 1

Trying to display image with imagejpeg()

Posted: Tue May 15, 2012 12:21 pm
by jeremydricard
Hi everyone, I'm trying to display an image stored in a folder with php code. But I keep getting a tiny box in the top left of my screen when submitted. Can't seem to display the picture.
I have the file path saved in $image_path.

$image_path = "user_images/image.jpg";



$image=imagecreatefromjpeg($image_path);

header('Content-Type: image/jpeg');

imagejpeg($image);


This code to my understanding should allow the image to be selected and displayed. But it doesn't.


All responses greatly appreciated.

Re: Trying to display image with imagejpeg()

Posted: Tue May 15, 2012 9:58 pm
by litebearer
Is there are reason you aren't simply using....

Code: Select all

<?php
$image_path = "user_images/image.jpg";
?>
<img src="<?php echo $image_path; ?>">
<?php
aside: make sure the path is correct relative to the folder in which the script resides

Re: Trying to display image with imagejpeg()

Posted: Thu May 17, 2012 12:26 pm
by x_mutatis_mutandis_x
litebearer wrote:Is there are reason you aren't simply using....

Code: Select all

<?php
$image_path = "user_images/image.jpg";
?>
<img src="<?php echo $image_path; ?>">
<?php
aside: make sure the path is correct relative to the folder in which the script resides
Will work only if your $image_path is a relative path to document root. If your image path is "C:\image.jpg" then it will look for image.jpg on client's C drive, not on the server's.

Re: Trying to display image with imagejpeg()

Posted: Sat May 19, 2012 1:18 pm
by jeremydricard
the php page is in the root folder, and the image is inside "user_images" folder as image.jpeg. Everything seems to be fine, yet I still cant pull up the picture. Heres my path




root
C:\xampp\htdocs\jeremyricarddesign\user_images

Re: Trying to display image with imagejpeg()

Posted: Sat May 19, 2012 5:34 pm
by califdon
jeremydricard wrote:the php page is in the root folder, and the image is inside "user_images" folder as image.jpeg. Everything seems to be fine, yet I still cant pull up the picture. Heres my path

root
C:\xampp\htdocs\jeremyricarddesign\user_images
Is that just a typo or does the file have an extension of .jpeg? Also, not sure what you mean by showing "root" apparently over "jeremyricarddesign". Ordinarily, the htdocs folder is the document root. Again, if that's the case, you're missing a folder in your path. I, too, wonder why you are not simply sending the image as an html image, without going through all of the imagecreatefromjpeg() stuff. Maybe there's more to it than you are explaining to us.

Re: Trying to display image with imagejpeg()

Posted: Sun May 20, 2012 11:58 am
by jeremydricard
I'm trying to use it strictly to learn it. So using the html is more effecient in this case? I just want to know whatever is the more up to date way of doing things. So it's best I pull up the user image from the folder with img_src ? do i have to send out headers?

thanks, all appreciated. learning this <span style='color:blue' title='I&#39;m naughty, are you naughty?'>smurf</span> on the run.

Re: Trying to display image with imagejpeg()

Posted: Sun May 20, 2012 12:43 pm
by califdon
jeremydricard wrote:I'm trying to use it strictly to learn it. So using the html is more effecient in this case? I just want to know whatever is the more up to date way of doing things. So it's best I pull up the user image from the folder with img_src ? do i have to send out headers?

thanks, all appreciated. learning this <span style='color:blue' title='I'm naughty, are you naughty?'>smurf</span> on the run.
The functions like imagecreatefrom... are used when you have to generate a NEW image that doesn't exist in the format you need. They are resource intensive functions and should never be used if the image already exists in a format you can use. If you have an image in either .jpg, .gif, or .png format, they are universally recognized by all browsers and only need to be referenced as the src attribute of an <img... html element.

No, you do not need to explicitly send headers in this circumstance. Ordinarily you would send the normal html lines, such as <!DOCTYPE HTML> (that's for HTML5, earlier DocTypes are much lengthier), <html>, <head>, <title>, </title>, </head>, <body>, and later, the </body> and </html>. That can be done either by using either print() or echo(), if you need to insert a lot of dynamic content, or more commonly just put those lines outside the <?php ... ?> block.

Indeed, if you are just trying to display an image on a web page and you know the path to the image on the server, there is no reason to use PHP at all. You only need to use HTML:[text]<img src='user_images/image.jpg' alt='My Image' />[/text]
PHP would be used only when you can't predict what image, for example, will be requested. In that case you would probably have a script that presents a form for the user to indicate what image they want to see, or a list of choices, each of which is an anchor element, like[text]<a href='test.php?img="image8.jpg'>Number 8</a>[/text]
Then this script would use either $_POST (data from a form) or $_GET (data from a URL) to obtain the image name. In that case, your script might look more like this:

Code: Select all

<!DOCTYPE HTML>
<html>
<head>
    <title>Image Test</title>
</head>
<body>
<?php
    $filename = $_GET['img'];
    $path = 'user_images/';
    echo "echo <img src='$path.$filename' alt='Your image' />";
?>
</body>
</html>