Autor | Zpráva | ||
---|---|---|---|
Chodec Profil |
#1 · Zasláno: 12. 9. 2010, 09:53:55
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 |
#2 · Zasláno: 12. 9. 2010, 10:08:59
nevím jestli lze zjistit, ale můžeš si ji určit <img src="neco.jpg" width="" height="">
|
||
Medvídek Profil |
#3 · Zasláno: 12. 9. 2010, 11:11:17
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 |
#4 · Zasláno: 12. 9. 2010, 11:12:15
kordy:
„můžeš si ji určit <img src="neco.jpg" width="" height="">“ ...což je to nejhorší, co můžeš udělat. |
||
kordy Profil |
#5 · Zasláno: 12. 9. 2010, 11:33:40 · Upravil/a: kordy
panther:
jestli narážíš na deformovanost lze nastavit třeba 50% |
||
panther Profil |
#6 · Zasláno: 12. 9. 2010, 11:34:13
kordy:
ne, narážím na to, že bude obrázek datově větší, než je třeba. Zbytečně. |
||
Chodec Profil |
#7 · Zasláno: 12. 9. 2010, 12:22:06
Aha, špatně položená otázka. Nezajímají mě rozměry (px), ale velikost (b).
|
||
miskith Profil |
#8 · Zasláno: 12. 9. 2010, 12:56:54
|
||
kordy Profil |
#9 · Zasláno: 12. 9. 2010, 13:23:06 · Upravil/a: kordy
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 |
#10 · Zasláno: 12. 9. 2010, 13:28:09
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 |
#11 · Zasláno: 12. 9. 2010, 13:33:35 · Upravil/a: kordy
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 |
#12 · Zasláno: 12. 9. 2010, 14:14:22
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 |
#13 · Zasláno: 12. 9. 2010, 14:28:05 · Upravil/a: kordy
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 |
#14 · Zasláno: 12. 9. 2010, 20:02:24
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 |
#15 · Zasláno: 12. 9. 2010, 20:28:06
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 |
#16 · Zasláno: 12. 9. 2010, 20:56:16
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 |
#17 · Zasláno: 12. 9. 2010, 22:06:26
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 |
#18 · Zasláno: 12. 9. 2010, 22:23:22
|
||
Chodec Profil |
#19 · Zasláno: 12. 9. 2010, 22:34:53
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 |
#20 · Zasláno: 12. 9. 2010, 22:47:45
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 |
#21 · Zasláno: 12. 9. 2010, 23:02:19
V průběhu diskuze jsem k tomu také došel.
Děkuji za "usměrnění" myšlenek. |
||
Časová prodleva: 14 let
|
0