Generování obrázku, problém s prohlížeči

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Mesiah
Člen | 240
+
0
-

Dobrý den,
generuji obrázek v action metodě, ale v prohlížečích Firefox a IE se mi obrázek nevykreslí (hláška z Firefoxu „Obrázek nelze zobrazit, protože osahuje chyby“ a v IE mám 500, chyba serveru).
Zvláštní, že v Chromu se mi obrázek vykreslí. Máte s tím prosím nějakou zkušenost?

public function actionCreatePiece($width, $color, $totalWidth = null) {
        $height = 30;
        $image = \Nette\Image::fromBlank($width, $height);
        $color = $this->getColor($color);

        $image->filledRectangle(0, 0, $width, $height, $color);
        $image->send(\Nette\Image::PNG);
    }

    private function getColor($color) {
        $red = 0;
        $blue = 0;
        $green = 0;
        $alpha = 0;
        switch ($color) {
            case 'green':
                $green = 255;
                break;
            case 'red':
                $red = 255;
                break;
            case 'empty':
                $alpha = 100;
                break;
            default:
                break;
        }
        return \Nette\Image::rgb($red, $green, $blue, $alpha);
    }

Editoval Mesiah (3. 6. 2012 17:49)

jtousek
Člen | 951
+
0
-

Zkusil bych si přes firebug prohlédnout hlavičky odpovědi. Pak bych uložil v chromu ten obrázek pomocí ctrl + s a zkusil otevřít jinde. Jo a doufám že jsi promazal cache FF a IE.

Btw. nechybí ti v tom case 'blue': v tom příkazu switch?

uestla
Backer | 799
+
0
-

Ty ten obrázek sice pošleš na výstup, ale pak se normálně běží dál, zabil bych to pomocí die();.

mkoubik
Člen | 728
+
0
-

Já bych to spíš zabil pomocí $this->terminate().