Senaryoyu durdurma imagecreatefromjpeg önlemek

5 Cevap

Ben paylaşılan bir bilgisayar üzerinde imagecreatefromjpeg kullanıyorum, bu nedenle görüntü büyük için ise daha sonra imagecreatefromjpeg bana bir "memmory hatası" vermek ve komut sona erecektir.

Memmory hata out yakalamak ve sadece yerine komut sonlandırma (yanlış Dönüş) imagecreatefromjpeg başarısız izin için yine de var mı?

5 Cevap

İlk görüntünün boyutunu çalışma deneyin: http://uk3.php.net/function.getimagesize Ben görüntü herhangi bir boyutta 3000px büyükse imagecreatefromjpeg düşecek inanıyorum.

Konuyu bkz:

http://stackoverflow.com/questions/1117344/a-fail-safe-way-to-prevent-gd-image-library-from-running-out-of-memory-php

Basit bir cevap Herhangi bir kesinlik derecesi ile kolayca mümkün değildir

işlevi önce @ ekleyerek herhangi bir yardım yapar?

Örnek:

$x=@imagecreatefromjpeg .......

php hatalarını bastırmak için nasıl ayrıca bkz: http://us3.php.net/manual/en/language.operators.errorcontrol.php

Ifadeleri ise sadece işlevi başarısız olduğunda yönlendirmek için talimat, içinde senin fonksiyonu kapamak.

yani eğer {/ / Burada komutları yönlendirmek} (imagecreatefromjpeg!);

Prevent imagecreatefromjpeg from stopping script, you should probably check for set memory limit. You can determine memory required as follows: memory required=image pixels * 3 bytes

örneğin Eğer çözünürlüğe sahip bir görüntü yaşıyorsanız 1000 x 2000 sonra belleği gerekli olacak

memory required= ((7000 *8000) * 3)=600000 bytes =5.72205MB

set bellek sınırı 5242880 bayt (5MB) ise, çağrı imagecreatefromjpeg için yapmadan önce aşağıdaki denetimi gerçekleştirmek () yapabilirsiniz

if($memory_required < 5242880)
{
    imagecreatefromjpeg();
    // continue with your image related operations
}
else
{
  //handle error message, perhaps show such message as "provide image is too big"
}

Eğer görüntü çözünürlüğünü (yükseklik, genişlik) belirlemek için PHP PHP mevcut işlevleri kullanabilirsiniz