Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Base64 в jpg, сжатие результата. / 25 сообщений из 106, страница 1 из 5
15.01.2021, 16:10
    #40036144
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Здравствуйте.
На сервер приходит изображение в виде строки Base64. Для обработки нужна полная, несжатая версия изображения. Обработка ведется непосредственно с Base64, без преобразования, это уже работает.
После этого Base64 сохраняется в БД, поле BLOB, это тоже уже раюотает.
Для того, чтобы уменьшить время сохранения в БД и не раздувать объем БД, надо сжать изображение. Насколько я понимаю, сжать непосредственно Base64, чтобы сохранилось изображение, невозможно.
Поэтому полагаю, что надо сделать так:
Получить из Base64 картинку jpg, сжать ее, и преобразовать обратно в Base64. Причем все манипуляции с jpg надо делать в памяти, не сохраняя файл на диске.
Подскажите, как это можно реализовать?

Используется Java 1.8
...
Рейтинг: 0 / 0
15.01.2021, 16:49
    #40036185
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Павел Гужанов,


Base64 это чтобы бинарник передать в виде текста. Например в json/email/....
Отсюда следует что в бд его не должно быть.
...
Рейтинг: 0 / 0
15.01.2021, 17:04
    #40036202
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Павел Гужанов,

Если изображения загружаешь как все, то есть волшебник
httpServletRequest.getParts()
Он base64 без тебя решает
...
Рейтинг: 0 / 0
15.01.2021, 17:17
    #40036211
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
base64 на 1/3 больше бинарника
...
Рейтинг: 0 / 0
15.01.2021, 17:30
    #40036215
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
PetroNotC Sharp,

Неправильно написал После этого Base64 сохраняется в БД"". В базу, в поле BLOB, сохраняется изображение как массив байт.
Но ведь массив байт я не могу сжать так, чтобы его можно было бы посмотреть как изображение.
Например, если использовать Arrays.copyOf(byte[] original, int newLength), то массив просто обрежется по длине, и изображение из такого массива просмотреть уже не получится.

Значит вопрос перефразируется так:
Как из Base64 получить jpg, сжать его, и в виде байтового массива загрузить в БД, при этом не создавая файла jpg на диске?
...
Рейтинг: 0 / 0
15.01.2021, 17:38
    #40036220
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Павел Гужанов,
В бд убрал base64? Обычный jpeg?
...
Рейтинг: 0 / 0
15.01.2021, 17:43
    #40036222
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
...
Рейтинг: 0 / 0
15.01.2021, 17:59
    #40036228
dimonz80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Павел Гужанов
Здравствуйте.
На сервер приходит изображение в виде строки Base64. Для обработки нужна полная, несжатая версия изображения. Обработка ведется непосредственно с Base64, без преобразования, это уже работает.
После этого Base64 сохраняется в БД, поле BLOB, это тоже уже раюотает.
Для того, чтобы уменьшить время сохранения в БД и не раздувать объем БД, надо сжать изображение. Насколько я понимаю, сжать непосредственно Base64, чтобы сохранилось изображение, невозможно.
Поэтому полагаю, что надо сделать так:
Получить из Base64 картинку jpg, сжать ее, и преобразовать обратно в Base64. Причем все манипуляции с jpg надо делать в памяти, не сохраняя файл на диске.
Подскажите, как это можно реализовать?

Используется Java 1.8


Сжимать jpg алгиритмамми бех потерь (zip,rar etc) бесполезно, он уже жатый. Если дорого место, то просто преобразуй из base64 в jpg. Ну можно еще jpeg преобразовать как картинку, т.е. уменьшить размер и/или увеличить степень сжатия.
...
Рейтинг: 0 / 0
15.01.2021, 18:50
    #40036239
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
дак уж тогда конвертировать в webp


а вообще зачем картинки в базу совать?
...
Рейтинг: 0 / 0
15.01.2021, 19:37
    #40036261
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Алгоритмы семейства JPEG уже лет 30 как разработаны и изучены. И ничего там сжать уже лучше нельзя.
Ну разве что ценой пере-создания нового JPEG изображения с более агрессивным квантованием цвета.

Результат превосходит все ожидания но картинка плавно переходит в мозаику. Если автору это нужно
- то пускай пробует. Но это все lossy compression и поэтому технических критериев тут нету. Пускай
заказчик сам посмотрит на такие изображения и решит - сойдет или выбросить эту идею нафик.

И да. Вадя прав. Можно попробовать webp, если ваш софт потянет. Я имею в виду на серверной
стороне. Браузеры уже должны поддерживать этот формат. Это по сути улучшеный JPEG с нейросеткой
внутри декодера.

Все игры с Base64 - уже решенный вопрос в Java-8. Там нет темы для обсуждения. И формат этот нужен
только для сериализации в текстовые форматы. Но если вы - отдаете этот контент из базы как Base64
то пускай он себе так и лежит.
...
Рейтинг: 0 / 0
15.01.2021, 19:48
    #40036265
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Павел Гужанов,

Base64 это "текстовый" формат, для бинарных файлов.
Очень хорошо сжимается любым архиватором.
Правда преобразование из jpeg в Base64 увеличивает размер файла ~3 раза.

Так что надо смотреть что выгоднее хранить в сжатом Base64 или бинарном jpeg.
...
Рейтинг: 0 / 0
15.01.2021, 19:58
    #40036267
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
mad_nazgul
Правда преобразование из jpeg в Base64 увеличивает размер файла ~3 раза.
на 1/3
mayton
Я имею в виду на серверной
стороне. Браузеры уже должны поддерживать этот формат.
смотря откуда берутся картинки - если сохраняются из браузера - можно конвертировать в самом браузере - затраты минимальные.

ну и остался вопрос - зачем в базе?

и что за картинки и для чего?
если для инемагазина - есть пример как делать картинки и превьюшки
...
Рейтинг: 0 / 0
15.01.2021, 22:18
    #40036285
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
mad_nazgul,
Ну ты загнул. Сначала расширить до текста а потом сжать обратно))
...
Рейтинг: 0 / 0
16.01.2021, 19:40
    #40036446
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79,
А где в РФ бесплатное облако?
...
Рейтинг: 0 / 0
17.01.2021, 09:27
    #40036520
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79
для начала надо ответить для чего картинки.
если для вэба - то есть проблема к доступу вне jar/war.
которая решается. несколькими вариантами.

если хранит в базе - то надо извлекать и сохранять... что есть время и нагрузка бессмысленная на базу,
линки на специальные сервера - тоже не есть оптимальное.
самое лучшее - хранить у себя , вне корневой папки сайта.
...
Рейтинг: 0 / 0
17.01.2021, 13:30
    #40036537
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79,
А сколько занимает место картинки в пропуск 3х4?
Что ты сразу начал топить за хранение в облаке?
Ты новичок реально что ли?
Документ pdf занимет место 30Mb против фотки jpeg в 3kBt
Вы о чем вообще?
...
Рейтинг: 0 / 0
17.01.2021, 13:35
    #40036540
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79,

>тоесть ркуводоство в адеквате
= ты не в адеквате
- не сделал ТЭО
- не разобрал выполнение закона о персональных данных.
- не понял что в топике не рассматривается Архитектура (где хранить)
...
Рейтинг: 0 / 0
17.01.2021, 13:50
    #40036545
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
вадя,

Верно. Это жертвы микросервисов и бута думают что хранить на амазоне лучше чем в апаче в своей сети предприятия))))
...
Рейтинг: 0 / 0
17.01.2021, 15:44
    #40036565
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
вадя

ну и остался вопрос - зачем в базе?

и что за картинки и для чего?
если для инемагазина - есть пример как делать картинки и превьюшки

Наверное смысл - тот-же что и у серверного рендеринга

https://www.sql.ru/forum/1323648-1/chto-takoe-servernyy-rendering
...
Рейтинг: 0 / 0
17.01.2021, 15:46
    #40036566
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
PetroNotC Sharp
вадя,

Верно. Это жертвы микросервисов и бута думают что хранить на амазоне лучше чем в апаче в своей сети предприятия))))

Если речь идет о крупном хранилище картинок типа инстаграма или социальной сети - то Амазон будет
лучшим решением. Там есть коробочные мехнизамы балансировки и гео-децентрализации.

Вряд-ли сеть твоего предприятия потянет хороший трафик фотографий. Особенно когда пользователей много.
...
Рейтинг: 0 / 0
17.01.2021, 15:51
    #40036567
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
"Предположение - мать всех провалов".
Предположения:
1. О размере (мощности) сети предприятия;
2. О типе и размерах изображений;
3. О количестве пользователей.
...
Рейтинг: 0 / 0
17.01.2021, 17:46
    #40036603
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79,

Ты бы не лез в архитектуру. Не получается у тебя.
Во смотри
авторХотелки автора ->чтобы уменьшить время сохранения в БД и не раздувать объем БДразве это нельзя решить без амазона?
Для тугих повторяю - сервис на амазоне нарушение закона РФ.
...
Рейтинг: 0 / 0
17.01.2021, 19:17
    #40036621
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79,

а нафига облачные для хранения фоток?
проще и дешевле на локале хранить.
делал сервис сохранения с предварительной обработкой - 700 фоток за раз из zip -
без проблем.
...
Рейтинг: 0 / 0
17.01.2021, 19:41
    #40036623
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79
ну видимо для большого объема - устанешь хранить так сказать,как думаешь почему нетфликс использует облачные сервисы амазон? нет денег на диск локальный?)
потому что это будет быстрее и стабильней видимо
6Т стоит 15k
можно хранить? если согласны на сжатие...
и сколько будет стоить 6Т на амазоне?
...
Рейтинг: 0 / 0
17.01.2021, 19:43
    #40036624
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Base64 в jpg, сжатие результата.
Zzz79
это вопрос к автору,вот что он пишет

**не сохраняя файл на диске.**
потому как он не умеет сохранять вне сайта ?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Base64 в jpg, сжатие результата. / 25 сообщений из 106, страница 1 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]