Problém s funkcí GetImageSize – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém s funkcí GetImageSize – PHP – Fórum – Programujte.comProblém s funkcí GetImageSize – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
RePRO0
Super člen
18. 3. 2012   #1
-
0
-

Zdravím,

o co jde? Mám na webu nějaké obrázky, resp. v databázi mám jenom URL a ty pak načítám. Mám funkci, která má konstantní velikost výšky a podle poměru nastavuje výšku. Problém je v tom, že to strašně dlouho trvá - je to pomalé. Jak se to dá obejít?

Ta funkce vypadá takto:

  function resizeImage($image_path, $new_height) {
         list($width, $height, $type, $attr) = getimagesize($image_path); 
       
         $ratio = $new_height/$height;
         $new_width = $ratio * $width;
            
         return $new_width;
  }
<img src=\"".$z['LINK_THUMBNAIL']."\" alt=\"".$z['NAME']."\" height=\"140\" width=\"".resizeImage($z['LINK_THUMBNAIL'], 140)."\" >

1) Podle mě to jde řešit tak, že tou funkcí projedu každý neupravený obrázek jenom jednou, ten si pak někam uložím a budu pouze načítat již ty upravené thumbnails... Nebudu zbytečně po každém reloadu volat tu funkci.

2) Pak jsem slyšel o BLOB objektu v Databázi - jenom z doslechu, o co jde?

Jiné náměty? RePRO.

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Reklama
Reklama
RePRO0
Super člen
18. 3. 2012   #2
-
0
-

Už mě napadla asi ta nejrychlejší varianta - myšlenka.

V databázi si udělám ještě WIDTH a HEIGHT column a z toho budu načítat. Pokud bude WIDTH OR HEIGHT NULL, zavolám funkci na přepočet (uložím do databáze) a zobrazím... Celý problém.

Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Curo
~ Šéfredaktor
+8
Hero
19. 3. 2012   #3
-
0
-

#2 RePRO
Hele, určitě nemůžeš při načtení webu provádět f-ce nad těmito obrázky, to je strašně, ale strašně neefektivní :-).

Budď udělej, jak jsi navrhoval, že všechny obrázky jednorázově prožeň f.cí, která je zmenší a pojmenuje třeba n-stary-nazev.xxx.

Takže:

  • originál: stary-obrazek.png
  • ten co budeš dávat do článku: n-stary-obrazek.png

Proženeš to jednou a ve výpise, kde obrázky vypisuješ, stačí upravit vypisování obrázků na:

<img src=\"n-".$z['LINK_THUMBNAIL']."\" alt=\"".$z['NAME']."\">

Případně, vůbec do toho nemusíš tahat PHP a můžeš to udělat pomocí CSS (pokud obrázky nejsou opravdu velké, aby se nenačítala jejich plná velikost zbytečně).

Nahlásit jako SPAM
IP: 90.180.158.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 65 hostů

Podobná vlákna

GetImageSize — založil Míša

Problém s funkcí strtok() — založil Sprinter

Problem s funkci mkdir(); — založil mORb

Problém s funkcí strcat() — založil Sprinter

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý