JPEG - это трехцветный формат.Обычно оно имеет 8 бит на цвет, но может иметь 12 или 16. Поэтому 24 = 3x8 бит цвета вполне разумно, но 16 или 32 просто невозможно.Это просто не делится на три.3x16 = 48 было бы возможно, но это более высокая глубина цвета.JPEG предназначен для фотографий, и не имеет смысла поддерживать более низкую битовую глубину, чем 3x8.Там нет никакой пользы в этом.
Теперь, что является 16-битным изображением в вашем коде?Это неточное приближение в памяти оригинала, использующее только 65535 цветов.Когда вы сохраните это обратно, вы получите 24-битный JPEG.Видимо ваш кодировщик JPEG не знает, как создать 48-битный JPEG.Даже если бы это было так, это было бы бесполезной тратой, так как образ в памяти все равно имеет только 65536 цветов.
Подводя итог: задача не в том, что идет не так.Там нет такого понятия, как 65536 цветных JPEG.