sbs21 Ответов: 2

Как отобразить изображение tiff в браузере, когда пользователь выбирает изображение.


У меня есть этот код (см. ниже), когда пользователь выбирает изображение
я хотел бы показать предварительный просмотр изображения. Он хорошо работает для стандартных форматов
но так как tiff не поддерживается некоторыми браузерами он покажет сломанное изображение если
пользователь выбирает изображение tiff. У меня нет никаких проблем с преобразованием изображения, когда я получаю
это с сервера моя проблема находится на стороне клиента.

Соответствующий javascript:
$(function () {
    $(document).on('change', '#ImageData', function (evt) {
        try {
            var file = evt.target.files[0] || evt.srcElement.files[0]; // Read the first file from the list.
        }
        catch (e) {
            // Something went wrong or no file was chosen - 
            // remove current image and return.
            removeImg();
            return;
        }

        if (isImage(file)) { // Add only valid images
            var reader = new FileReader();
            reader.onloadend = (function () {
                return function (event) {
                    var img = document.getElementById('img-id');
                    img.src = event.target.result;
                };
            })(file);
            reader.readAsDataURL(file); // Read in the image file as a data URL.
        }
        else {
            removeImg(); // If there is already image remove it
        }
    });
});



The relevant html:
@Html.ValidationMessageFor(model => model.imageFile, "", new { @class = "text-danger" })
@Html.TextBoxFor(model => model.imageFile, new { type = "file", name = "imageFile", id = "ImageData" })
<img id='img-id' style="height: 300px; width: auto;">

2 Ответов

Рейтинг:
2

Solai Raja

Вы не можете показать изображение tiff в браузере, потому что это не рендер-способный формат изображения для браузера.

Лучше всего вы можете преобразовать поток изображения tiff в строку base64, а затем поместить его в атрибут src тега img.


sbs21

Солай Раджа благодарит вас за быстрый ответ. Я знаю, как конвертировать его на стороне сервера, можете ли вы показать мне, как это сделать на стороне клиента (вероятно, с помощью javascript)?

Solai Raja

я думаю, что мы не могли бы сделать это в javascript стороне.

sbs21

Еще раз спасибо Солаи Раджа. Так что нет никакого способа сделать это кто-нибудь???

Solai Raja

Наверное, да.! В будущем мы можем сделать это с помощью самого браузера :)

Рейтинг:
2

Member 14830912

Используйте https://github.com/seikichi/tiff.js[^]