Zobrazení obrázku – nechová se jak má

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

Potřebuji vykreslit obrázek…

v presenteru

$target = WWW_DIR."/photogallery/14_billy-1920x1200.jpg";
$this->template->image = Image::fromFile($target)->resize(100, 100);

v template

<img src="{$image->send()}" alt="fotografie" class="photographyStyle"/>

asi špatně nasazuji, v prohlížeči se mi zobrazí „http://xxx.aplikace.cz/multimedia/detail-photo/?do=photoForm-submit“ s title (JPEG obrázek)

uff – netuším kde by mohla být chyba. vím že v template volat $image->send() není správně, protože Image::fromFile mi vrací binárku.
pokud ->send() uvedu v prezentu – obrázek se mi v pohodě vykreslí na prázdné stránce. Spíš nevím, jak správně implementovat. Děkuji za připomínky :-)

Editoval Gaudentius (6. 6. 2010 16:51)

redhead
Člen | 1313
+
0
-

send() ale nevrací cestu k obrazku, proto je hloupost to vkládat do atributu src. Obrázek musíš někam uložit a do src dát cestu k němu.

Pokud to chceš mít dynamicky jak to chceš. Musíš udělat nějaký nový view (asi i presenter) a v něm dělat změny obrázku a posílat ho zpět přes send(), ovšem do src musíš dát odkaz na ten view (ne obrázek samotný tj. jeho obsah/data).

treba:
<img src="{plink Image:thumbnail '/photogallery/14_billy-1920x1200.jpg'}" />
class ImagePresenter extends BasePresenter
{
	public function renderThumbnail($img)
	{
		$target = WWW_DIR.$img;
		$img = Image::fromFile($target)->resize(100, 100);
		$img->send();
	}
}

Editoval redhead (6. 6. 2010 17:00)

RDPanek
Člen | 189
+
0
-

Zdá se to jako zajímavý nápad. v presenteru mám:

public function handleThumbamil($url)
        {
             $img = Image::fromFile($url)->resize(100, 100);
             $img->send();
        }

v template

<img src="{plink thumbamil! 'url'=>$target}" alt="fotografie" class="photographyStyle"/>

když si neachám zobrazit vygenerovaný kód:

<img class="photographyStyle" alt="fotografie" src="/multimedia/detail-photo/?url=W%3A%5Cxampp%5Chtdocs%5Cnetcontrol%2Fphotogallery%2F14_billy-1920x1200.jpg&amp;do=thumbamil">

nesmyslná cesta :-(

Ola
Člen | 385
+
0
-

WWW_DIR není konstanta k přístupu z venku. Použij Environment::getVariable('baseUri') nebo Environment::getVariable('basePath').

EDIT: blbě sem si to přečetl, má tam být WWW_DIR

Editoval Ola (6. 6. 2010 19:03)

RDPanek
Člen | 189
+
0
-

výsledek stejný :-(

Ola
Člen | 385
+
0
-

Ta cesta není nesmyslná, je OK. Pokud to nefunguje, tak je chyba někde jinde.

Za předchozí příspěvek se omlouvám, má tam být WWW_DIR.

EDIT: asi tam chybí ukončení, takhle se asi ještě kreslí šablona. za ten send zkus doplnit $this->terminate();

Editoval Ola (6. 6. 2010 19:06)

RDPanek
Člen | 189
+
0
-

Ola napsal(a):

Ta cesta není nesmyslná, je OK. Pokud to nefunguje, tak je chyba někde jinde.

Za předchozí příspěvek se omlouvám, má tam být WWW_DIR.

EDIT: asi tam chybí ukončení, takhle se asi ještě kreslí šablona. za ten send zkus doplnit $this->terminate();

Díky přítely – terminate byl ten problém :-)