Нет, типы MIME не определяют цветовые профили. Все, что нужно для интерпретации цветового профиля, встроено в данные изображения; для поддержки цветовых профилей не требуется дополнительная информация на базовом уровне передачи.
Проблема, вероятно, была связана с чем-то другим. Например, если вы включили их в PHP include (), то возникновение последовательности байтов «<?» возможно, вызвал парсер PHP, который выдает ошибки. </p>
Переход на readfile (), как вы сделали, выглядит как правильное решение.
Примечание. Сценарий, с которым вы ссылаетесь, имеет серьезные проблемы с безопасностью, вызванные отсутствием проверки ввода. Вы, возможно, уже знаете это и просто использовали это в качестве упрощенного примера, в этом случае - надеюсь, никто не скопирует код.