Подробности чтения половинных чисел, включая код, описаны в сообщении в блоге здесь:
http://fpmurphy.blogspot.com/2008/12/half-precision-floating-point-format_14.html
После прочтения в своих числах вы должны будете выполнить операцию тонального отображения, чтобы получить значения в диапазоне 0..255, разрешенном для PNG. Эта операция называется «тональным отображением», и у вас есть различные варианты ее выполнения. Очень просто было бы найти максимальное значение на изображении M и масштабировать все значения яркости пикселей на 255 / M , чтобы попасть в нужный диапазон. Однако есть алгоритмы, которые немного более сложны.
В зависимости от источника ваших изображений вы также можете применить гамма-коррекцию перед записью изображений. Поскольку вам все равно придется работать со значениями с плавающей запятой, я бы предложил выполнить все вычисления с использованием чисел с плавающей запятой и выполнить преобразование с плавающей запятой в байты в качестве последнего шага, чтобы избежать проблем с качеством изображения, таких как полосатость.