|
Posted by e_matthes on 04/18/07 04:15
On Apr 17, 8:28 am, ZeldorBlat <zeldorb...@gmail.com> wrote:
> On Apr 17, 11:55 am, e_matt...@hotmail.com wrote:
>
>
>
> > Hello everyone,
>
> > I'm trying to make a class that will generate images. I can get it to
> > work if the class and the instance of the class is in the same file.
> > However, I can't get it to work if I save the class as its own file,
> > and try to make an instance of it in another file. Any thoughts?
>
> > Here is the working version:
>
> > <?php
>
> > header("Content-type: image/png");
> > $imageRes = new Image(200, 300);
> > $imageRes->colorImage(255,0,0);
> > $image = $imageRes->getImage();
> > imagepng($image);
>
> > class Image {
>
> > private $imageRes;
>
> > function __construct($widthIn, $heightIn) {
> > $this->imageRes = imageCreate($widthIn, $heightIn);
> > }
>
> > function colorImage($rIn,$gIn,$bIn) {
> > $red = imagecolorallocate( $this->imageRes, $rIn,$gIn,$bIn );
> > }
>
> > function getImage() {
> > return $this->imageRes;
> > }
>
> > } // END class
>
> > ?>
>
> > Thanks for any help.
> > -Eric
>
> Make sure you require/include the file that contains the class
> definition. If the class is in a file called Image.php then you might
> have a page that looks like this:
>
> require('Image.php');
>
> header("Content-type: image/png");
> $imageRes = new Image(200, 300);
> $imageRes->colorImage(255,0,0);
> $image = $imageRes->getImage();
> imagepng($image);
>
> Also look into __autoload() -- it will make things much easier when
> you have a lot of classes.
>
> <http://www.php.net/autoload>
I think this is what I tried. When I put the class in a separate
file, this is what I have:
<?php
// simple_phptests.php
include_once("Image.php");
header("Content-type: image/png");
$imageRes = new Image(200, 300);
$imageRes->colorImage(255,0,0);
$image = $imageRes->getImage();
imagepng($image);
?>
<?php
// Image.php
class Image {
private $imageRes;
function __construct($widthIn, $heightIn) {
$this->imageRes = imageCreate($widthIn, $heightIn);
}
function colorImage($rIn,$gIn,$bIn) {
$red = imagecolorallocate( $this->imageRes, $rIn,$gIn,$bIn );
}
function getImage() {
return $this->imageRes;
}
} // END class
?>
This works for all the other classes I have created, but not for this
image class. The message I get when I load simple_phptests.php is:
"The image simple_phptests.php cannot be displayed, because it
contains errors."
Any other ideas? Thanks
Navigation:
[Reply to this message]
|