Почему если передать исходный массив пикселей то он работает, а если передать изменений того же размера то не работает.
И почему размер входного изображения 1600*1600. 24rgb
А массив пикселей 5100, А должно быть 5 МЛН. Куда после Image.FromStream(ms, true); пропало 99% значений.
Ну так заканчивайте, как кто либо может вам помочь её закончить, если нет никаких данных почему вы это сами сделать не можете. Может вам просто лень.