|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Здравствуйте. На сервер приходит изображение в виде строки Base64. Для обработки нужна полная, несжатая версия изображения. Обработка ведется непосредственно с Base64, без преобразования, это уже работает. После этого Base64 сохраняется в БД, поле BLOB, это тоже уже раюотает. Для того, чтобы уменьшить время сохранения в БД и не раздувать объем БД, надо сжать изображение. Насколько я понимаю, сжать непосредственно Base64, чтобы сохранилось изображение, невозможно. Поэтому полагаю, что надо сделать так: Получить из Base64 картинку jpg, сжать ее, и преобразовать обратно в Base64. Причем все манипуляции с jpg надо делать в памяти, не сохраняя файл на диске. Подскажите, как это можно реализовать? Используется Java 1.8 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 16:10 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Павел Гужанов, Base64 это чтобы бинарник передать в виде текста. Например в json/email/.... Отсюда следует что в бд его не должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 16:49 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Павел Гужанов, Если изображения загружаешь как все, то есть волшебник httpServletRequest.getParts() Он base64 без тебя решает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 17:04 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
base64 на 1/3 больше бинарника ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 17:17 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Неправильно написал После этого Base64 сохраняется в БД"". В базу, в поле BLOB, сохраняется изображение как массив байт. Но ведь массив байт я не могу сжать так, чтобы его можно было бы посмотреть как изображение. Например, если использовать Arrays.copyOf(byte[] original, int newLength), то массив просто обрежется по длине, и изображение из такого массива просмотреть уже не получится. Значит вопрос перефразируется так: Как из Base64 получить jpg, сжать его, и в виде байтового массива загрузить в БД, при этом не создавая файла jpg на диске? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 17:30 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Павел Гужанов, В бд убрал base64? Обычный jpeg? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 17:38 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
22264061 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 17:43 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Павел Гужанов Здравствуйте. На сервер приходит изображение в виде строки Base64. Для обработки нужна полная, несжатая версия изображения. Обработка ведется непосредственно с Base64, без преобразования, это уже работает. После этого Base64 сохраняется в БД, поле BLOB, это тоже уже раюотает. Для того, чтобы уменьшить время сохранения в БД и не раздувать объем БД, надо сжать изображение. Насколько я понимаю, сжать непосредственно Base64, чтобы сохранилось изображение, невозможно. Поэтому полагаю, что надо сделать так: Получить из Base64 картинку jpg, сжать ее, и преобразовать обратно в Base64. Причем все манипуляции с jpg надо делать в памяти, не сохраняя файл на диске. Подскажите, как это можно реализовать? Используется Java 1.8 Сжимать jpg алгиритмамми бех потерь (zip,rar etc) бесполезно, он уже жатый. Если дорого место, то просто преобразуй из base64 в jpg. Ну можно еще jpeg преобразовать как картинку, т.е. уменьшить размер и/или увеличить степень сжатия. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 17:59 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
дак уж тогда конвертировать в webp а вообще зачем картинки в базу совать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 18:50 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Алгоритмы семейства JPEG уже лет 30 как разработаны и изучены. И ничего там сжать уже лучше нельзя. Ну разве что ценой пере-создания нового JPEG изображения с более агрессивным квантованием цвета. Результат превосходит все ожидания но картинка плавно переходит в мозаику. Если автору это нужно - то пускай пробует. Но это все lossy compression и поэтому технических критериев тут нету. Пускай заказчик сам посмотрит на такие изображения и решит - сойдет или выбросить эту идею нафик. И да. Вадя прав. Можно попробовать webp, если ваш софт потянет. Я имею в виду на серверной стороне. Браузеры уже должны поддерживать этот формат. Это по сути улучшеный JPEG с нейросеткой внутри декодера. Все игры с Base64 - уже решенный вопрос в Java-8. Там нет темы для обсуждения. И формат этот нужен только для сериализации в текстовые форматы. Но если вы - отдаете этот контент из базы как Base64 то пускай он себе так и лежит. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 19:37 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Павел Гужанов, Base64 это "текстовый" формат, для бинарных файлов. Очень хорошо сжимается любым архиватором. Правда преобразование из jpeg в Base64 увеличивает размер файла ~3 раза. Так что надо смотреть что выгоднее хранить в сжатом Base64 или бинарном jpeg. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 19:48 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
mad_nazgul Правда преобразование из jpeg в Base64 увеличивает размер файла ~3 раза. mayton Я имею в виду на серверной стороне. Браузеры уже должны поддерживать этот формат. ну и остался вопрос - зачем в базе? и что за картинки и для чего? если для инемагазина - есть пример как делать картинки и превьюшки ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 19:58 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
mad_nazgul, Ну ты загнул. Сначала расширить до текста а потом сжать обратно)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 22:18 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79, А где в РФ бесплатное облако? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 19:40 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79 если для вэба - то есть проблема к доступу вне jar/war. которая решается. несколькими вариантами. если хранит в базе - то надо извлекать и сохранять... что есть время и нагрузка бессмысленная на базу, линки на специальные сервера - тоже не есть оптимальное. самое лучшее - хранить у себя , вне корневой папки сайта. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 09:27 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79, А сколько занимает место картинки в пропуск 3х4? Что ты сразу начал топить за хранение в облаке? Ты новичок реально что ли? Документ pdf занимет место 30Mb против фотки jpeg в 3kBt Вы о чем вообще? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 13:30 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79, >тоесть ркуводоство в адеквате = ты не в адеквате - не сделал ТЭО - не разобрал выполнение закона о персональных данных. - не понял что в топике не рассматривается Архитектура (где хранить) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 13:35 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
вадя, Верно. Это жертвы микросервисов и бута думают что хранить на амазоне лучше чем в апаче в своей сети предприятия)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 13:50 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
вадя ну и остался вопрос - зачем в базе? и что за картинки и для чего? если для инемагазина - есть пример как делать картинки и превьюшки Наверное смысл - тот-же что и у серверного рендеринга https://www.sql.ru/forum/1323648-1/chto-takoe-servernyy-rendering ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:44 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp вадя, Верно. Это жертвы микросервисов и бута думают что хранить на амазоне лучше чем в апаче в своей сети предприятия)))) Если речь идет о крупном хранилище картинок типа инстаграма или социальной сети - то Амазон будет лучшим решением. Там есть коробочные мехнизамы балансировки и гео-децентрализации. Вряд-ли сеть твоего предприятия потянет хороший трафик фотографий. Особенно когда пользователей много. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:46 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
"Предположение - мать всех провалов". Предположения: 1. О размере (мощности) сети предприятия; 2. О типе и размерах изображений; 3. О количестве пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:51 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79, Ты бы не лез в архитектуру. Не получается у тебя. Во смотри авторХотелки автора ->чтобы уменьшить время сохранения в БД и не раздувать объем БДразве это нельзя решить без амазона? Для тугих повторяю - сервис на амазоне нарушение закона РФ. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:46 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79, а нафига облачные для хранения фоток? проще и дешевле на локале хранить. делал сервис сохранения с предварительной обработкой - 700 фоток за раз из zip - без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 19:17 |
|
Base64 в jpg, сжатие результата.
|
|||
---|---|---|---|
#18+
Zzz79 ну видимо для большого объема - устанешь хранить так сказать,как думаешь почему нетфликс использует облачные сервисы амазон? нет денег на диск локальный?) потому что это будет быстрее и стабильней видимо можно хранить? если согласны на сжатие... и сколько будет стоить 6Т на амазоне? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 19:41 |
|
|
start [/forum/topic.php?fid=59&msg=40036261&tid=2120553]: |
0ms |
get settings: |
7ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
42ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
436ms |
get tp. blocked users: |
0ms |
others: | 314ms |
total: | 810ms |
0 / 0 |