Page 1 of 1

whats wrong???

Posted: Sat May 20, 2006 5:51 am
by _qwerty_
Whats wrong with this script??

Code: Select all

<?php

$tipas = $_GET['tipas'];

if($tipas=="bw"){$i = new imagethumbnail_blackandwhite(); }else{ $i = new imagethumbnail(); }

    $i->open("aaaaaaaa.jpg");
    $i->setX(100);
    $i->setY(100);

if($tipas=="bw"){$i->blackandwhite();}else{}

    header("Content-type: image/jpeg;");
    $i->imagejpeg();

    class imagethumbnail {
    
        var $filename;
        var $x;
        var $y;
        var $image;
        var $thumbnail;

        function imagethumbnail() {

        }
        
        function open($filename) {

            $this->filename = $filename;
            $imageinfo = array();
            $imageinfo = getimagesize($this->filename,$imageinfo);
            
            $this->old_x = $imageinfo[0];
            $this->old_y = $imageinfo[1];
                        
            switch ($imageinfo[2]) {
                case "1": $this->image = imagecreatefromgif($this->filename); break;
                case "2": $this->image = imagecreatefromjpeg($this->filename); break;
                case "3": $this->image = imagecreatefrompng($this->filename); break;
            }
            
        }

        function setX($x="") {
            if (isset($x)) { $this->x = $x; }
            return $this->x;
        }

        function setY($y="") {
            if (isset($y)) { $this->y = $y; }
            return $this->y;
        }

        function generate() {

            if ($this->x > 0 and $this->y > 0) {
                $new_x = $this->x;
                $new_y = $this->y;
            } elseif ($this->x > 0 and $this->x != "") {
                $new_x = $this->x;
                $new_y = ($this->x/$this->old_x)*$this->old_y;
            } else {
                $new_x = ($this->y/$this->old_y)*$this->old_x;
                $new_y = $this->y;
            }

            $this->thumbnail = imagecreatetruecolor($new_x,$new_y);
            $white = imagecolorallocate($this->thumbnail,255,255,255);
            imagefill($this->thumbnail,0,0,$white);

            imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);

        }

        function imagegif($filename="") {
            if (!isset($this->thumbnail)) { $this->generate(); }
            imagetruecolortopalette($this->thumbnail,0,256);
            if ($filename=="") {
                imagegif($this->thumbnail);
            } else {
                imagegif($this->thumbnail,$filename);
            }
        }

        function imagejpeg($filename="",$quality=80) {
            if (!isset($this->thumbnail)) { $this->generate(); }
            imagejpeg($this->thumbnail,$filename,$quality);
        }

        function imagepng($filename="") {
            if (!isset($this->thumbnail)) { $this->generate(); }
            if ($filename=="") {
                imagepng($this->thumbnail);
            } else {
                imagepng($this->thumbnail,$filename);
            }
        }

    }

if($tipas=="bw"){
    class imagethumbnail_blackandwhite extends imagethumbnail {

        function imagethumbnail_blackandwhite() {

        }
        
        function blackandwhite() {

            if (!isset($this->thumbnail)) { $this->generate(); }
            for ($x=0;$x<256;$x++) {
                $palette[$x] = imagecolorallocate($this->thumbnail,$x,$x,$x);
            }
            for ($x=0;$x<imagesx($this->thumbnail);$x++) {
                for ($y=0;$y<imagesy($this->thumbnail);$y++) {
                    $rgb = imagecolorat($this->thumbnail,$x,$y);
                    $r   = ($rgb >> 16) & 0xFF;
                    $g   = ($rgb >>  & 0xFF;
                    $b   = $rgb & 0xFF;
                    $val = (($r*0.299)+($g*0.587)+($b*0.114));
                    imagesetpixel($this->thumbnail,$x,$y,$palette[$val]);
                }
            }
        }

    }
  }else{} 
?>
[url=http://forums.devnetwork.net/viewtopic.php?t=30037]Forum Rules[/url] Section 1.1 wrote:2. Use descriptive subjects when you start a new thread. Vague titles such as "Help!", "Why?" are misleading and keep you from receiving an answer to your question.

Posted: Sat May 20, 2006 5:55 am
by _qwerty_
Fatal error: Cannot instantiate non-existent class: imagethumbnail_blackandwhite in /home/10063/rojus/foto.php on line 5


i get this erorr :/

Posted: Sat May 20, 2006 9:22 am
by jayshields
I can't pin point it for you exactly without understanding your code.

A starting point for debugging would be to declare all classes/functions at the top of your script, outside of any if blocks.

Posted: Sat May 20, 2006 10:00 am
by onion2k
I think the problem lies in putting the imagethumbnail_blackandwhite class declaration inside an if(){} block.