Grafika/php - coś nie tak :(


(Sitemaster) #1

cześć, mam problem z wygenerowaniem i wyświetleniem w przeglandrce obrazu.

Zamiast grafiki wyświetla mi tylko jej kod :evil: :-x :evil:

˙Ř˙ŕJFIF˙ţ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 75 ˙ŰC $.' ",#(7),01444'9=82<.342˙ŰC 2!!22222222222222222222222222222222222222222222222222˙Ŕťú"˙Ä ˙Äľ}!1AQa"q2Ą#BąÁRŃđ$3br %&'()* .

a tu fragment w php odpowiedzialny za pokazanie

function show()

	{

		@Header("Content-Type: image/".$this->img["format"]);

		$this->img["des"] = ImageCreateTrueColor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);

    		@imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);


		if ($this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {

			//JPEG

			imageJPEG($this->img["des"],"",$this->img["quality"]);

		} elseif ($this->img["format"]=="PNG") {

			//PNG

			imagePNG($this->img["des"]);

		} elseif ($this->img["format"]=="GIF") {

			//GIF

			imageGIF($this->img["des"]);

		} elseif ($this->img["format"]=="WBMP") {

			//WBMP

			imageWBMP($this->img["des"]);

		}

	}

co tu jest nie tego??


(M a x) #2

jakiej przegladarki używasz ?


(Sitemaster) #3

(Ryan) #4

funkcja show() musi być wywołana jako jedyna w pliku php:

<?

include("plik_z_funkcja_show.php");

show();

?>

Jeśli przed wywołaniem show() masz jakiś kod HTML, to nie dokleisz nagłówków a i początek pliku nie będzie wskazywał, że to grafika.


(Lisek) #5

Ewentualnie zrób tak:


(Sitemaster) #6

dzięki wam wielkie :slight_smile:

Przypusczałem że to sprawa nagłówka, ale pewności nie miałem

tym bardziej że ta funkcja to część większego skryptu, gdzie wszystkie inne funkcje dobrze działaly - dobzre przekazują nagłówki, tylko ztą jedną był kłopot :smiley:


(Sitemaster) #7

I jeszcze raz :-x

Niestety nie jestem w tym dobry więc muszę spytać .

Jak dam na początku pliku

<?

include_once("resize.php");

$thumb=new thumbnail("obraz.jpg");

$thumb->size_width(250);

$thumb->show();

?>

to wszystko jest dobrzee Sęk wy tym, że proced $thumb->xxx; muszę wywołać parokrotnie wewnątrz strony, może nawet w pętli. Jak sądze, trzeba by yużyć właśnie ob_start i ob_flush do zbuforowania i późniejszego wysłania nagłówków, tylko jak? bo jakoś tak nie chce działać :frowning:

<? ob_start("ob_gzhandler"); ?>


...


...

...

pentla

<? ob_end_flush(); ?>

...

Dla jasności: Chodzi o bezpośrednie wysłanie na strone miniaturek generowanych przez skrypt...

z gory dziękuje za fatyge i przepraszam


(Ryan) #8

? Traktuj plik PHP wyświetlający grafikę jak zwykły plik GIF czy JPG - chyba wiesz, że jak masz stronę HTML to grafikami są osobne pliki, prawda? Jeśli na stronie chcesz umieścić graficzkę generowaną przez rob_grafike.php to dajesz na stronie:

... [/code]


A rob_grafike.php zwraca pewien obrazek na podstawie parametru jaka (w tym wypadku np. taka.jpg czy jak sobie to zakodujesz).



Innymi słowy:

[b]grafika.php[/b]

[code]<? include_once("resize.php"); $thumb=new thumbnail($_GET["plik"]); $thumb->size_width(250); $thumb->show(); ?>

strona.php

Galeria

(Lisek) #9

To jest zdecydowanie źle. Jak chcesz buforować stronę, to zrób to w całości. Więc zrób tak:


(Sitemaster) #10

Dzięki wam wielkie dobrzy ludzie za tak łopatologiczne wyjaśnienie,

tgeo mi było potrzeba.

Teraz wszystko chodzi idealnie :smiley: :smiley: :smiley:

dziekuje raz jeszcze.