Ne "aralık dışında renk endeksi" a neden olabilir

0 Cevap php

Bir yama JPG, PNG ve GIF dosyaları büyük bir demet yeniden boyutlandırmak yaparken, PHP aşağıdaki hata mesajı ile oldukça beklenmedik bir şekilde ölü düşer:

imagecolorsforindex() [function.imagecolorsforindex]: Color index 226 out of range

İlgili kod parçası olduğunu:

protected function preserveTransparency($img, $resized, $ftype) {

    if (($ftype == IMAGETYPE_PNG) || ($ftype == IMAGETYPE_GIF)) {
        $tidx = imagecolortransparent($img);
        if ($tidx >= 0) {
          $transColor = imagecolorsforindex($img, $tidx);
          $tidx = imagecolorallocate($resized, $transColor['red'], $transColor['green'], $transColor['blue']);
          imagefill($resized, 0, 0, $tidx);
          imagecolortransparent($resized, $tidx);
        } elseif ($ftype == IMAGETYPE_PNG) {
            imagealphablending($resized, false);
            imagesavealpha($resized, true);
            $transparent = imagecolorallocatealpha($resized, 255, 255, 255, 127);
            imagefill($resized, 0, 0, $transparent);
        }
    }
}

Zaten imagecolortransparent tarafından iade edilmesi halinde nasıl bir renk indeksi var değil mi?

0 Cevap