Как отправить растровое изображение предварительного просмотра на контроллер? - PullRequest
0 голосов
/ 06 февраля 2019

Я занимаюсь разработкой проекта, в котором пользователю необходимо загрузить изображения в веб-приложение ASP.NET MVC Core.В настоящее время, когда пользователь выбирает изображение, он получает предварительный просмотр, чтобы увидеть, какое изображение он / она загрузил.

Теперь на двух фотографиях мне нужно выполнить распознавание номерного знака (у меня уже есть код для распознавания вконтроллер, поэтому мне просто нужно растровое изображение в моем контроллере.

Это мой код, таким образом:

Текущий код HTML / Javascript

enter image description here

Когда пользователь нажимает кнопку «Проверить изображения», приложение должно проверить, находится ли определенная пластина на «выбранном» изображении. Можно ли получитьПоток битов, если изображение только что выбрано и не загружено на сервер? Тот факт, что я могу отобразить изображение, говорит мне, да, или я ошибаюсь?

Если так, как я могу получить растровое изображение изображения вмой контроллер? Я также добавил изображение моей архитектуры проекта MVC для лучшего понимания:

Архитектура проекта

enter image description here

Заранее спасибо.

1 Ответ

0 голосов
/ 06 февраля 2019

Допустим, у вас есть тип ввода File

<input type="file" onchange="encodeImageFileAsURL(this)" />

и внутри функции onchange (добавьте это к существующей функции onchange)

function encodeImageFileAsURL(element) {
     var file = element.files[0];
     var reader = new FileReader();
    reader.onloadend = function() {
    console.log('RESULT', reader.result)
    sendBase64(reader.result);
   }
   reader.readAsDataURL(file);

}

Затем с помощью этой функции вы можете отправить изображение какот base64 до контроллера

  function sendBase64(base64){
  var formdata = new FormData();
  formdata.append("base64image", base64);

  $.ajax({
      url: "@Url.Action("SaveImage")",
     type: "POST",
    data: formdata,
     processData: false,
    contentType: false
   });
 }

Метод контроллера :

    [HttpPost]
    public void SaveImage(string base64image)
    {

      Bitmap bmp = Base64ToBitmap(base64image);
     //do something with bitmap

    }

    public Bitmap Base64ToBitmap(String base64String)
    {
    byte[] imageAsBytes = Base64.Decode(base64String, Base64Flags.Default);
    return BitmapFactory.DecodeByteArray(imageAsBytes, 0, imageAsBytes.Length);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...