Когда я загружаю любой другой тип изображения, это не проблема.Это включает загрузку файлов .png с прозрачностью - альфа-канал сохраняется.При загрузке изображений TIF изображения деформируются.При восстановлении их с помощью opencv (распаковка изображения путем открытия, преобразования в RGB и повторного сохранения) альфа-канал пропадает.При открытии изображения вначале в opencv, форма была x на y на 3. Таким образом, альфа-канал был просто полностью очищен, и это не проблема для opencv.
Попытка открыть изображение во всех других областяхтрубопровод, прозрачность сохраняется.Только когда изображения отправляются через Dropzone и сохраняются на сервере, они деформируются.Все остальные протестированные форматы изображений в порядке.
Я искал способы конвертации изображений .tif на лету, когда они добавляются в очередь Dropzone, но я не могу найти способ сделать это.тот.
например, получить доступ к функциям прототипа Dropzone и выполнить преобразование по событию -> не удается найти библиотеку преобразования, которая работает без узла.
Этот код, вероятно, не поможет.Я на 99% уверен, что это не ошибка конфигурации, а скорее внутренняя ошибка в Dropzone, которую мне придется исправить.Мне просто нужно несколько советов о том, как это сделать.
Единственный код, имеющий отношение к Dropzone, находится в upload_form.html:
{{ dropzone.load_css() }}
{{ dropzone.style('border: 2px dashed #0087F7; margin: 10px 0 10px; min-height: 400px; width: 800px') }}
{{ dropzone.load_js() }}
{{ dropzone.config(custom_init='this.on("sendingmultiple", function(data, xhr, formData) {formData.append("league",
document.getElementById("league").value); formData.append("season",document.getElementById("season").value);
formData.append("nickname", document.getElementById("nickname").value);
formData.append("tricode", document.getElementById("tricode").value);}); this.on("successmultiple",
function(file, status){console.log(status);});') }}
И
app.py:
app.config.update(
UPLOADED_PATH=os.path.join(basedir, 'uploads'),
DROPZONE_ALLOWED_FILE_TYPE='image',
DROPZONE_MAX_FILE_SIZE=8,
DROPZONE_MAX_FILES=100,
DROPZONE_UPLOAD_MULTIPLE=True,
DROPZONE_PARALLEL_UPLOADS=10,
DROPZONE_IN_FORM=True,
DROPZONE_UPLOAD_ON_CLICK=True,
DROPZONE_UPLOAD_ACTION='handle_upload',
DROPZONE_UPLOAD_BTN_ID='submit',
)
Ожидается:
Загрузить изображение в формате tif, и изображение идентично изображению на сервере.
Фактическое значение:
Загрузитьtif image, изображение искажено (изображение подобно четырехкратному увеличению по оси x), и цвета неправильные.Это может быть исправлено открытием в Pillow или opencv, преобразованием из BGR в RGB и повторным сохранением.Хотя после этого все прозрачные части изображения (0,0,0) -> черные пиксели.Опять же, альфа-канал ОТСУТСТВУЕТ (форма 1200x800x3 вместо 1200x800x4) при открытии серверной копии в Pillow или opencv.