Страница 1 из 1

Зависает клиент у получателя после отправки очень большого изображения

СообщениеДобавлено: Вт дек 29, 2020 12:06 pm
olegpr
Приветствую.

После отправки большого файла у получателя в окне постоянно бегает прогресс и окно привата зависает. Удалить это сообщение не получается. Зависает даже в админке сервера при просмотре протокола.
Клиент работает без проблем, пока не откроет приват с этим сообщением...
Что можно сделать?

С уважением,
Олег.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 12:45 pm
AlexaS
Пару раз было помогало удаление файла на сервере.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 1:06 pm
olegpr
Спасибо, удаление файла помогло!

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 2:53 pm
Алексей Пикуров
После отправки большого файла у получателя

Это файл-изображение?

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 2:57 pm
olegpr
Да, изображение.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 2:58 pm
Алексей Пикуров
Можете прислать это изображение на support@nsoft-s.com нам для анализа? В любом архиве либо ссылкой на Google.Drive.

Попробуем разобраться, в чём там дело.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 3:03 pm
olegpr
Отправил.
Как оказалось он не большой по размеру, но большой по пикселам.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 3:05 pm
Алексей Пикуров
Не важно. Файл пришёл, спасибо. Я попробую разобраться, что происходит.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 4:49 pm
Алексей Пикуров
Разобрались.

Исходный файл, что вы прислали — размером 12074 x 8396 точек. Это 101 373 304 пикселей.

При ресайзе изображений, когда мы делаем миниатюру, чтобы избежать "лесенки", мы переводим исходную картинку в 64-х битовый ARGB. Это 8 байт на точку.

Итого исходная картинка займёт в памяти примерно 773 мегабайта. Это непозволительно много, функция ресайза не отрабатывает.

Поэтому перед изменением размера я поставил проверку, если исходный размер изображения не превышает 5К (19 660 800 точек), то ресайз делается, как и раньше. А если больше — то перевод в 64-х битовый цвет не делается, чтобы сэкономить память и время. Протестировал — всё Ок.

Фикс будет в новой сборке, после Нового Года.

Re: Зависает клиент у получателя после отправки большого файла

СообщениеДобавлено: Вт дек 29, 2020 5:17 pm
Алексей Пикуров
viewtopic.php?p=42434#p42434

Поправил название темы.