Autor Zpráva
Icka
Profil *
Ahoj, mám trochu problém na webhostingu, přižemž jinde (jiné hostingy) mě funkce bez problémů běží..

mám takovouto funkci na tvorbu miniatur:
1 function VytvorMiniaturu($dir, $img, $vyska) {
2 list($width, $height) = getimagesize($dir.$img);
3 $sirka = ($vyska / $height) * $width;
4 $th_image = imagecreatetruecolor($sirka, $vyska);
5 imagecopyresized($th_image,imagecreatefromjpeg($dir.$img), 0, 0, 0, 0, $sirka, $vyska, $width, $height);
6 if (!imagejpeg($th_image, $dir . "_" . $img, 100)) { return false; }
7 }

a vyhazuje mě takovouto chybu s nedostatkem paměti:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes) in /www/doc/www.vyskoveprace.com/www/script.php on line (radek 5)

Nevíte co bych měl udělat pro to, aby chyba byla odstraněna s tim, že miniatury bych potřeboval generovat ?? :-(
Tuším, že to bude něco v nastavení php.ini na serveru, takže asi budu muset žádat server pravděpodobně o nějaké rozšíření paměti že..?
Děkuji
Musilda
Profil
Na začátek scriptu

ini_set("memory_limit","xxM");

Místo xx velikost jakou potřebuješ.

V php.ini

řádek 246
memory_limit = 32M ; Maximum amount of memory a script may consume (16MB)
Musilda
Profil
Ale na hostingu pokud nemáš povoleno ini_set(), budeš muset požádat.
Icka
Profil *
No ono je na serveru nastaveno 8M, což mě přijde pro vygenerování miniatury jako dostatek :-(( ??
Davex
Profil
Do 8 MB paměti se ale asi nevejde originální obrázek. Zkus to nějak takto:

function VytvorMiniaturu($dir, $img, $vyska) { 
  list($width, $height) = getimagesize($dir.$img); 
  $sirka = ($vyska / $height) * $width; 
  $th_image = imagecreatetruecolor($sirka, $vyska); 
  $orig = imagecreatefromjpeg($dir.$img);
  imagecopyresized($th_image, $orig, 0, 0, 0, 0, $sirka, $vyska, $width, $height); 
  imagedestroy($orig);
  $err = imagejpeg($th_image, $dir . "_" . $img, 100);
  imagedestroy($th_image);
  if (!$err) {
    return false;
  }
}
Alphard
Profil
Icka:
No ono je na serveru nastaveno 8M, což mě přijde pro vygenerování miniatury jako dostatek :-(( ??
Jak velké obrázky upravujete?
Icka
Profil *
Obrázky které mají < cca 300kb jde bez potíží procpat... Ale pokud mají > cca 300, už to hází tuto chybu :-(
No jinak bych potřeboval uploadovat a následně VytvoritMiniaturu() z obrázků, které mají řádově 500 - 600 kb a to je právě problém... I s funkcí předloženou od Davexe...
Alphard
Profil
Icka:
Datová velikost není podstatná, myslel jsem rozměry, např. 1200×1600 apod.
Davex
Profil
Icka
Velikost paměti používané PHP skripty by mělo jít zvětšit pomocí souboru .htaccess:
php_value memory_limit 64M

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: