Существует два типа приведения: расширенное приведение (неявное) и сужающее приведение (явное выполнение)
Расширение -> преобразование нижнего диапазона в больший
Сужение -> преобразование большего диапазона в более низкий (что приводит к потере данных)
так что тип float может быть приведен к типу Double, найти представление для изображения