Autor | Zpráva | ||
---|---|---|---|
rosta Profil |
#1 · Zasláno: 8. 2. 2014, 14:04:33
Ahoj můžete mi někdo poradít ?
Při vkládání fotek menší než 1 MB je vše v pořádku Fotku to načte a zmenší .. Problém nastává jakmile chci nahrát větsí foto příklad 2,5 MB tak to hází chybu Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 14592 bytes) Povolená velikost paměti 33554432 bajtů vyčerpány (pokusil přidělit 14592 bajtů) v php.ini mam nastaveno: ======================== upload_max_filesize 24M memory_limit 32M post_max_size 16M Dá se zmenšování fotek udělat i jinak ? Moc díky za pomoc |
||
pcmanik Profil |
#2 · Zasláno: 8. 2. 2014, 14:30:29
rosta:
Používaš grafickú knižnicu GD, alebo imagemagick? Imagemagick má totiž pamäť nezávislú na nastavení php. A nejaké typy ako ešte viac zoptimalizovať spracovanie pre imagemagick môžeš nájsť tu. Samozrejmne najjednoduchšia cesta je navíšiť memory_limit, avšak to vám hosting nemusí povoliť. |
||
Joker Profil |
#3 · Zasláno: 8. 2. 2014, 14:31:15
Stejný problém jsem kdysi řešil.
Asi jediné řešení je to zjevné, prostě zvýšit memory_limit. To samozřejmě neodstraní problém jako takový, ale přesune ho až na větší obrázky. Problém jako takový jde odstranit jen těžko. Při zmenšování fotky rovnou v počítači se to neděje proto, že tam je k dispozici mnohonásobně víc paměti (32MB paměti je dneska málo i na levný mobil). |
||
rosta Profil |
#4 · Zasláno: 8. 2. 2014, 14:36:49
DÍKY moc limit mi nenavíší ... tak hledám jiné řešení A co se týče knihovny to vůbec nevím jak to zjistím ??? díky
|
||
juriad Profil |
#5 · Zasláno: 8. 2. 2014, 14:51:23
Ukaž kód, který používáš pro zmenšování obrázků. Každá knihovna má jiné funkce pro manipulaci s obrázky.
|
||
Str4wberry Profil |
#6 · Zasláno: 8. 2. 2014, 14:51:40
Pokud stačí hodně malé náhledy, dá se je dost rychle a možná tedy i nenáročně získávat z EXIFu.
Další možnost je zmenšování na straně klienta — v některých prohlížečích to funguje. |
||
rosta Profil |
#7 · Zasláno: 8. 2. 2014, 14:58:38
kod pro zmenšení
<? $max_size = 160; $cesta="foto_inzerce/".$nextid."_".$snimek.".jpg"; $cil="foto_inzerce/".$nextid."_".$snimek."_n.jpg"; $img_zdroj = ImageCreateFromJPEG ($cesta); $width = ImageSX ($img_zdroj); $height = ImageSY ($img_zdroj); if ($width > $height) { $velx = $max_size; $vely = $max_size * ($height / $width); } elseif ($width < $height) { $velx = $max_size * ($width / $height); $vely = $max_size; } elseif ($width == $height) { $velx = $max_size; $vely = $max_size; } SetType ($velx, "integer"); SetType ($vely, "integer"); $img_cil = ImageCreateTrueColor($velx,$vely); ImageCopyResized($img_cil,$img_zdroj,0,0,0,0,$velx,$vely,$width,$height); ImageJPEG ($img_cil,$cil); ImageDestroy($img_zdroj); ImageDestroy($img_cil); ?> |
||
Alphard Profil |
#8 · Zasláno: 8. 2. 2014, 15:07:15
Je to klasický script pro zmenšení obrázku, jestli se má pracovat s GD, nic se s tím nevymyslí.
Je to popsané i v Nejčastější potíže s PHP (FAQ) » Překročení paměti, kde je odkaz na kalkulačku pro výpočet potřebné paměti. Mimochodem, lepšího výsledku se dosáhne použitím funkce imagecopyresampled(), ale pokud jde o paměť, tak si samozřejmě nepomůžete. |
||
rosta Profil |
#9 · Zasláno: 8. 2. 2014, 15:07:34 · Upravil/a: rosta
zkusím vše jen aby to fungovalo .Jak myslíte na stanici?
jak bych to měl udělat přes knihovnu imagemagick nejaký skript by tu nebyl moc všem díky ... |
||
Alphard Profil |
#10 · Zasláno: 9. 2. 2014, 00:21:27
Internet je plný zdrojů, jak zmenšit obrázek...
V manuálu najdete funkci pro změnu velikosti Imagick::resizeImage, v komentářích je i příklad. Přímo na vytváření náhledu je metoda Imagick::thumbnailImage. Další možnosti jako výřezy jsou uvedeny např. v Crop and Resize Images with ImageMagick. |
||
Časová prodleva: 3 dny
|
|||
rosta Profil |
#11 · Zasláno: 11. 2. 2014, 18:13:36
moc díky
|
||
Časová prodleva: 10 let
|
0