Re: how to display GD graphic in web page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the detailed explanation.

I should have expanded further on my design goals though. I initiated my 
examination of this problem when I tried to generate my "on-the-fly" images 
with a class method like:

// on_the_fly.php
<script language="php">
class on_the_fly {
function on_the_fly() {
}
function a_graphic() {
 $image = imagecreatefrompng("my_graphic.png");
 imagepng($image);
 }
}
</script>

then call the method as needed as in:

// my_page.php
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<script language="php">
include ('on_the_fly.php');
$otf_graphic = new on_the_fly();
echo "<img src=$otf_graphic->a_graphic()">;
</script>
</body>
</html>

This resulted in a page filled with random characters.

So I interpret from your response that I'm still unable to reference "<img 
src=$otf_graphic->a_graphic()"> and MUST create my on-the-fly graphic in a 
*.php file or *.png as you suggest.

Thanks
Chris

""Richard Lynch"" <ceo@xxxxxxxxx> wrote in message 
news:59747.71.57.116.88.1130205670.squirrel@xxxxxxxxxxxxxxxx
> On Mon, October 24, 2005 7:14 pm, Chris wrote:
>> I don't understand what is going on with a simple example I created to
>> understand how GD graphics are presented in a web page.
>
> Basically, you were right the first time.
>
> Think of it this way:
>
> HTML pages generally have, well, HTML in them.
>
> Sometimes that HTML has an IMG tag, and that provides a URL to an image.
>
> But, with static images, you don't copy/paste the image itself right
> into your HTML.
>
> It's just another URL that the browser gets after it gets the HTML.
>
> PHP doesn't change any of this, really, except that now the URL for
> the image just *happens* to be an image that is composed on the fly.
>
>> Now if I treat graphic.php as an image, and reference in another page
>
> graphic.php *is* an image, just like, any other image.
>
> So you should treat it like an image.
>
>> my_graphic.png is no longer displayed and the web page gets filled
>> with
>> random characters.
>
> If you had a PNG, and if you opened up that file in Notepad/BBEdit/vi
> and you copied all the stuff out of it and pasted it into your HTML,
> that's pretty much what you would get, right?
>
> Just like you just did with PHP doing the "paste"
>
> Now, one little caveat:
>
> Microsoft, in its infinite wisdom, frequently IGNORES the
> "Content-type:" head from the HTTP specification in various versions
> of Internet Explorer.
>
> Instead, MS IE will examine the URL and see: graphic.php and say, "Oh,
> never mind that silly HTTP specification and Content-type, *this* must
> be a .php file because it ends in .php, and everybody uses 8.3,
> right?"
>
> Then, of course, MS IE says, "Oh my goodness! I don't know how to
> handle a '.php' file! Woe is me!" and then pops up a Window telling
> the user it has encountered a file of type .php and doesn't know what
> to do with it.
> [I'll tell 'em what to do with it... :-)]
>
> Anyway, if you're going to do much with dynamic images, you might as
> well start getting them to have ".png" filenames now.
>
> There are lots of techniques for this, but the whole ignoring
> Content-type mess of MS IE, and because of their similar idiocy with
> GET parameters for .pdf and .swf files, I recommend this:
>
> Make your HTML and your URL indistinguishable from static HTML/URL, so
> that MS IE can't *possibly* [bleep] up.
>
> Put this in an .htaccess file next to the graphic.php script:
>
> <Files graphic.png>
>  ForceType application/x-httpd-php
> </Files>
>
> Now, rename graphic.php to graphic.png
>
> Voila.
>
> MS IE "sees" graphic.png and "knows" it's a PNG.
>
> Apache was told that graphic.png is *really* a PHP script, so Apache
> fires up PHP and PHP/GD make the image and spit it out.
>
> Your HTML and PNG are indistinguishable by the browser from a static
> image, and they'd have to break every PNG out there to make yours not
> work.  Which, knowing MS, is not *impossible* but it's a lot less
> likely than their various versions of IE that will break on
> http://example.com/graphic.php as a PNG image URL.
>
> -- 
> Like Music?
> http://l-i-e.com/artists.htm 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux