ты перепутал ширину и высоту?Вы уверены, что значение dpi правильное?
Я подозреваю, что вся проблема заключается в следующей строке:
BitmapSource bitmapSource = BitmapSource.Create(
width, height, (double)dpi, (double)dpi, PixelFormats.Bgr24, null, image, ((width * 24 + 31) & ~31) >> 3)
Что бы я сделал, чтобы отладить проблему, это записать изображение в файл иподтвердите все введенные данные.Используйте photoshop, paint.net, свойства файла ... Вы уверены, что работаете с растровым форматом?Вы уверены, что работаете с 24 битами на пиксель?Вы уверены, что у вас правильные значения высоты и ширины, и вы вводите значения в правильный аргумент
О чем эта строка и зачем вы это делаете?Я немного подозрительно((ширина * 24 + 31) & ~ 31) >> 3)
По сути, я смотрю на это так, что вы подаете в битовую библиотеку поток битов ... она не знаетчто это за биты, но он будет пытаться создать изображение из информации, которую вы ему предоставляете: биты на пиксель, размер и т. д. Если вы дадите ему неверную информацию, он создаст поврежденное изображение, как вы показали.
Я немного подозреваю, что проблема не в ширине и высоте;даже если вы смешаете эти два значения - я думаю, что вы получите хотя бы часть первого ряда пикселей для правильной визуализации.Я вижу статический / шум / снег, который говорит мне, что есть что-то в том, как поток битов был интерпретирован - он отображается как случайные черные и белые.
Еще одна вещь: в вашей экранной шапке ясм цветэто еще один намек на то, что в ваших предположениях об изображении есть что-то неверное.Значения должны, вероятно, от 1 до 256 (я думаю, 8 бит на пиксель?). Я бы попытался создать черно-белое растровое изображение на 8 бит на пиксель.Каким-то образом библиотека считает, что это цветное изображение.
Я только что заметил, что вы принимаете JPEG.JPEG - это формат с потерями - я бы предположил, что у вас получится растровое изображение или изображение TIFF.дважды проверьте, что вы действительно получаете изображение JPEG (проверьте документацию API штрих-кода)