Ciao,
qui
Codice PHP:
if(($image_type == 1) || ($image_type==3)){
                
imagealphablending($tmpfalse);
                
imagesavealpha($tmp,true);
                
$transparent imagecolorallocatealpha($tmp255255255127);
                
imagefilledrectangle($tmp00$newwidth$newheight$transparent);
            } 
fai riferimento a $tmp, che però non hai ancora inizializzato.
Codice PHP:
$tmp=imagecreatetruecolor(... 
è presente solo successivamente, quando verifichi la necessità o meno di fare di crop/resize

Tra l'altro, è ripetuto in successione, sovrascrivendo la variabile:
Codice PHP:
...
$tmp=imagecreatetruecolor($newwidth,$newheight);
$tmp=imagecreatetruecolor($max_size,$newheight);

...
                    
$tmp=imagecreatetruecolor($newwidth,$newheight);
$tmp=imagecreatetruecolor($newwidth,$max_size);
...