Reemplace un color con otro color en una imagen con PHP

Sí, sé que hay preguntas relacionadas disponibles en stackoverflow, pero no funcionan perfectamente según mis necesidades. Estoy tratando de reemplazar un color de una imagen con otro color. En el siguiente código, estoy reemplazando (255,0,255) con (0,192,239).El código a continuación funciona pero no reemplaza perfectamente el color nuevo sobre el color rosa (255,0,255), algunos puntos menores o bordes de color rosa aún permanecen, como puede ver en la imagen de salida.

¿Cómo puedo obtener su solución perfecta?

<?php
$filename = 'img/Mascots_Aviators_General-copy.png'; 
$im = imagecreatefrompng($filename);
$out = imagecreatetruecolor(imagesx($im), imagesy($im));
$transColor = imagecolorallocatealpha($out, 254, 254, 254, 127);
imagefill($out, 0, 0, $transColor);

for ($x = 0; $x < imagesx($im); $x++) {
    for ($y = 0; $y < imagesy($im); $y++) {
        $pixel = imagecolorat($im, $x, $y);

        $red = ($pixel >> 16) & 0xFF;
        $green = ($pixel >> 8) & 0xFF,;
        $blue = $pixel & 0xFF;
        $alpha = ($pixel & 0x7F000000) >> 24;

        if ($red == 255 && $green == 0 && $blue == 255) {
            $red = 0;
            $green=192;
            $blue =239;
        }

        if ($alpha == 127) {
            imagesetpixel($out, $x, $y, $transColor);
        }
        else {
            imagesetpixel($out, $x, $y, imagecolorallocatealpha($out, $red, $green, $blue, $alpha));
        }
    }
} 
imagecolortransparent($out, $transColor);
imagesavealpha($out, TRUE); 
header('Content-type: image/png');
imagepng($out);

Respuestas a la pregunta(1)

Su respuesta a la pregunta