Autor Zpráva
Chodec
Profil
Pomocí PHP vytvářím náhledy fotek. Lze nějak zjistit velikost tohoto generovaného náhledu bez toho, abych ho ukládal na disk nebo zjišťoval jeho velikost přes URL?
kordy
Profil
nevím jestli lze zjistit, ale můžeš si ji určit <img src="neco.jpg" width="" height="">
Medvídek
Profil
Chodec:
A jak tvoříš náhledy těch fotek? Ty náhledy přece musí mít nějakou šířku a výšku.
Já osobně používám taky náhledy, který se neukládají:
<img src="nahled.php?vyska=150&url=plakaty/'.$u_plakat.'" alt="'.$u_plakat.'" />


A určitě bude fungovat i funkce getimagesize
panther
Profil
kordy:
můžeš si ji určit <img src="neco.jpg" width="" height="">
...což je to nejhorší, co můžeš udělat.
kordy
Profil
panther:
jestli narážíš na deformovanost lze nastavit třeba 50%
panther
Profil
kordy:
ne, narážím na to, že bude obrázek datově větší, než je třeba. Zbytečně.
Chodec
Profil
Aha, špatně položená otázka. Nezajímají mě rozměry (px), ale velikost (b).
miskith
Profil
filesize($filename);
kordy
Profil
panther:
možná máš pravdu podle účelů na jaké to potřebuješ a kolik máš obrázků...a taky od prostoru který si platíš...
Pokud chceš běžný web, tak tě pár Bytů tě nezabije ne? Si budu půl hodiny hrát s resamplerem nebo jiným programem co to upravuje abych v důsledku ušetřil 10MB?
nevim no zatim takhle šetřit nepotřebuju :) Pak bys ale mohl mazat odstavce a mezery že? Protože jsou tam "zbytečně" a "může" to být prakticky v jednom řádku...
Chodec
Profil
miskith:
Až na to že filesize($filename) zjistí velikost souboru. Problém je, že já žádný soubor nemám. Mám pouze script, co generuje obrázek.
kordy
Profil
pak si teda vygenerovaný obrázek dáš do proměnné (třeba $obrazek) a zjistíš filesize($obrazek)

mimochodem v tom odkazu, jestli si ho rozklik je todle:

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';


do somefile.txt si můžeš dosadit svůj generovací script...
Joker
Profil
kordy:
Pokud chceš běžný web, tak tě pár Bytů tě nezabije ne?
To není ten hlavní důvod. Koneckonců mít jen velký obrázek zabírá méně místa než velký obrázek a náhled. Nevýhody jsou jinde:
- Zvyšuje to objem přenesených dat a zpomaluje načítání stránky. Viděl jsem i stránky, které se přesně kvůli tomuhle děsně pomalu načítaly i na 5-megabitovém připojení.
- Prohlížeč musí použít nějaký algoritmus pro zmenšení obrázku, který je v různých prohlížečích různý a s různou výslednou kvalitou. Čili se může stát, že některý obrázek v některém prohlížeči bude vypadat viditelně hůře.
kordy
Profil
Joker:
aaha :) pomalé načítání je už zásadnější problém. Promiň Panthere byl sem omezenej :)
proto jsou tedy v googlu odmazány veškeré mezery? (tedy důvodem je rychlost práce)
Keeehi
Profil
kordy:
Datová velikost zdrojového kódu menší než velikost obrázků, takže odmazáním mezer se výsledná velikost zase o tolik nemenší. S běžným připojením to ani nepoznáš, ale třeba při použití internetu v telefonu už to znát je.
Alphard
Profil
Tak se mi zdá, že tady není jediná věc řešící problém tazatele.

Chodec:
Uveďte prosím kontext, ideálně váš script.
Výsledná velikost obrázku je závislá na použitém formátu a kompresi. Pokud vím, spolehlivě ji lze zjistit až po použití některé funkce generující výsledný obrázek, např. imagejpeg(). V té chvíli ale už asi není co řešit. Obrázek potřebujete, takže nezbývá, než ho uložit.
DJ Miky
Profil
Pokud je podmínka neuložení na disk, tak lze zapnout output_buffering, vypsat data pomocí image*(), zjistit délku bufferu, buffer zahodit a vypnout output_buffering.

Tím se ale obrázek musí nejen vygenerovat, ale i vypsat do paměti, takže se trochu zvýší náročnost skriptu.
Chodec
Profil
DJ Miky:
Taky možnost, ale protože na stránce script generuje opravdu hodně náhledů, tak nechci zbytečně zatěžovat server.

A jiným způsobem to pravděpodobně asi nepůjde, protože obrázek se generuje až po načtení stránky, takže v jiném scriptu než samotná stránka, kde to potřebuji. Asi nezbývá než opravdu obrázek dočasně uložit nebo použít cestu přes URL a tím pádem se ale bude generovat dvakrát.
Alphard
Profil
Chodec:
Stále jste neuvedl, o co se snažíte. Skoro to na mě působí, že vytváříte nějakou galerii a náhledy generujete pro každou stránku, což by hodně vytěžovalo server.

Pokud ty obrázky hned vykreslujete, můžete použít [#16] a obsah nezahazovat. Tím ale narážím na [#15], napište, o co se snažíte.
Chodec
Profil
Ono to není na nějaký konkrétní výtvor. Je to pouze script na generování náhledů fotek na stránce s univerzálním použitím.
Na stránce je náhled fotky, generovaný z originálu. Po najetí na něj vyskočí okno, kde bude uvedena velikost originálu, ve kterém je pomocí PHP vložen vodotisk (takže má velikost různou od originálu). A jen mě zajímalo, jestli de dá nějak ta velikost zjistit.
Alphard
Profil
Chodec:
Na stránce je náhled fotky, generovaný z originálu.
Jak jsem psal, je to náročné na zpracování. Jednu vygenerovaný náhled byste měl uložit pro příště.

Po najetí na něj vyskočí okno, kde bude uvedena velikost originálu
Tu verzi s vodotiskem by taktéž neškodilo cachovat. Pak by stačilo filesize().
Jiné řešení nevidím, protože jak sám píšete, ve chvíli, kdy se vykresluje stránka, ten velký obrázek (verze s vodotiskem) neexistuje.
Chodec
Profil
V průběhu diskuze jsem k tomu také došel.
Děkuji za "usměrnění" myšlenek.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0