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

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


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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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