imagecreatetruecolor 1536X1962 ancak daha küçük diminsions ile başarısız

2 Cevap php

Ben dosya konularda boyutunu göstermek için benim sorunum daraltmıştır. Dosya ancak büyük olduğunu ne zaman bilmiyorum. Nasıl hatayı yakalayabilirsiniz. Bir 1.1mg dosya imagecreatetruecolor kurtarmak için neden ama 688k dosyayı işlerken sadece iyi boyunca chuggs.

Teşekkürler

2 Cevap

Ben PHP / GD belgelerinde ne söyleyebilirim, bu işlev varsayılan renk olarak siyah bir 24-bit RGB görüntü oluşturur. Argümanlar piksel boyutlarında için ints olarak genişlik ve yükseklik alır. (Sıkıştırma öncesi) ham görüntü suçlu olup olmadığını belirlemek için aşağıdaki nedenle boyutunu hesaplamak için, bunları çarpma olabilir:

1536 * 1962 = 3,013,632 pixels
3,013,632 * 24 = 72,327,168 bits
72,327,168 / 8 = 9,040,896 bytes

1024 * 768 = 786,432 pixels
786,432 * 24 = 18,874,368 bits
18,874,368 / 8 = 2,359,296 bytes

Bu fonksiyon 1.1 MB boyutunda sorunlara neden olur ama belki de böyle çok daha fazla gerçek ham boyutu çok olabilecek bir jpg, gibi sıkıştırılmış bir görüntü başvuruyorsunuz bana sıradışı görünüyor. (Eğer 1024x768 "küçük" bir görüntü görebileceğiniz gibi üzerinde 1.1 MB ham de devam etmektedir.)

Eğer çok büyük bir görüntü oluşturmak için çalışırsanız işlev bir hata atmak olacaktır. Sadece hatayı bastırmak ve kendiniz anlaştım. Örneğin,

$img = @imagecreatetruecolor(100000, 100000);
if ($img === false)
{
    // Handle error
}