imagefill () использует заливку, которая довольно медленная по сравнению с простым рисованием цвета в прямоугольнике без учета содержимого изображения.Поэтому imagefilledrectangle () будет намного быстрее.
// get size of target image
$width = imagesx($targetImage);
$height = imagesy($targetImage);
// get the color white
$white = imagecolorallocate($targetImage,255,255,255);
// fill entire image (quickly)
imagefilledrectangle($targetImage,0,0,$width-1,$height-1,$white);
Скорость часто учитывается при написании кода.