Проблема с неправильным форматом при преобразовании файла изображения BMP из Base-64 в двоичный формат.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с неправильным форматом при преобразовании файла изображения BMP из Base-64 в двоичный формат.

Сообщение Anonymous »

Я пытаюсь преобразовать данные Base-64, содержащиеся в «данных», возвращаемых toDataURL Fabric.Canvas, в файл с соответствующим расширением (BMP). В результате появляется ошибка «Файл имеет неверный формат».
Я выполняю следующие действия.
  • Я получаю переменную dataURL из Fabric.Canvas с помощью метода toDataURL.
    dataURL = Canvas.toDataURL({
    format: 'bmp ',
    качество: 1.0
    });
  • Я извлекаю только ту строку, которая содержит «данные».
    dataURLto64 = dataURL.substr(dataURL.lastIndexOf(',') + 1,
    dataURL.length -
    dataURL.lastIndexOf(',') - 1);
  • Вышеописанное делается на клиенте. На сервере мне нужно было сохранить строку по сегментам в текстовом файле TXT. Я проверил, что окончательное содержимое текстового файла идентично исходному dataURLto64 (в Base-64).
  • Я извлекаю содержимое текстового файла.

    Код: Выделить всё

    string strtextfile64 = File.ReadAllText([path]);
    
  • Я преобразую эту строку в массив байтов с помощью метода Convert.FromBase64String
byte[] fileBinary = null;

Код: Выделить всё

fileBinary = Convert.FromBase64String(strtextfile64);

File.WriteAllBytes([path], fileBinary);
Я проверил, что dataURLto64 и strtextfile64 имеют одинаковые символы и один и тот же номер.
Чтобы проверить правильность строки Base-64, я включил следующую проверку на сервере.

Код: Выделить всё

 int mod4 = strtextfile64.Length % 4;

if (mod4 > 0) {
strtextfile64 += new string('=', 4 - mod4);
}
Изменять strtextfile64 не было необходимости, поскольку mod4 = 0.
Прикрепляю два текстовых файла, в которых исходный (клиент) и конечный ( сервер) Содержатся строки Base-64.
Исходный клиент
Конечный сервер
Может ли кто-нибудь сказать мне причину, по которой этот Base-64 данные, преобразованные в двоичные данные, не соответствуют требованиям с исходным форматом BMP из исходного файла BMP, созданного из ткани. Холст?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -to-binary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»