powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Записать картинку как строку (сериализация)
4 сообщений из 4, страница 1 из 1
Записать картинку как строку (сериализация)
    #37592549
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Нужна функциональность сохранение небольшой пользовательской картинки в БД как строки (именно, а не как binary).
Вопрос, как лучше это сделать? Как конкретно перевести большой бинарный массив (картинка) в строку?
Если я просто буду добавлять число, содержащееся в каждом байте массива, к строке и затем сохраню такую строку в БД, будет ли это проавильно? Почему говорят, что при сериализации возрастает размер?
Заранее спасибо.
...
Рейтинг: 0 / 0
Записать картинку как строку (сериализация)
    #37592745
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я просто буду добавлять число, содержащееся в каждом байте массива, к строке и затем сохраню такую строку в БД, будет ли это проавильно?Это будет наименее правильно. Например, как будешь отличать конец одного числа и начало другого?
Почему говорят, что при сериализации возрастает размер?Потому что можно сказать, что бинарный формат это текстовый формат из 256 символов. Часть из этих символов нечитаема как текст (символы табуляции, возврата каретки и т.п.), поэтому их нужно закодировать читаемыми символами. Одним не получится, он занят самим собой, следовательно нужна кодовая комбинация из нескольких , следовательно растет размер.

Самая жирная и быстрая для конвертации кодировка это hex, она кодирует все 256 символов парой символов из диапазона 0-F, поэтому размер возрастает в два раза, а в зависимости от типа поля в бд на диске может быть занято и больше. Самая распространенная — base64, она увеличивает объем на треть. Твой вариант на вскидку увеличил бы объем раза в 4-5. Выбор кодировки нужно делать после ответа на вопрос, нафига это вообще надо.
...
Рейтинг: 0 / 0
Записать картинку как строку (сериализация)
    #37593065
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь1973,

base64 - гарантированнный вариант храения инфы. НО! - есть ограничение по объему стринга в вашей БД.
Есть ещё BLOB - но при этом _вы_ должны изучить работу с импортом/экспортом полей...
...
Рейтинг: 0 / 0
Записать картинку как строку (сериализация)
    #37593450
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторкак отличать конец одного числа и начало другого
Ну, я думаю, можно сохранять просто числа, по три симсола на число. Добавлять ведущие нули, и тогда на каждое число будет приходиться строго 3 символа.
Или да, шестнадцатиричная hex - будет 2 символа на число.
А base64, значит обеспечивает 1.3 символа на чило, понятно.

Что касается назначения сериализации - оно широкое (например, передать объект по HTTP), но у меня проще - для хранения в одном текстовом поле разнородных объектов (иконок и др.).
Только, плз, ничего не нужно говорить про "правильную структуру", нормализацию и тп.

Спасибо, все прояснили :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Записать картинку как строку (сериализация)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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