Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
.NET 4.x

Сохранение и Чтения множество картинок в 1 файл совместно с JSON данными

05.05.2019, 15:24. Показов 3744. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Возможно не правильно назвал тему но:
Есть класс с данными которые сохраняются в файл JSON через JS серелизацию
Мне с этими данными нужно также хранить массив картинок.
Но проблема в том что формат JSON не сможет хранить картинки в читаемом виде. Только в массиве байт но это будет не читаемым для пользователей.
К слову подскажите как лучше организовать сохранения картинок в 1 файл чтобы это можно было прочитать другими прогами но чтобы это также привизать к данным JSON
Искал в интернете но не нашел ничего чтобы подошло.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2019, 15:24
Ответы с готовыми решениями:

[JSON] Правильное сохранение настроек в Json файл
Добрый день уважаемые участники. Есть вопрос. Решил я сохранять настройки проги в json файл. Начну с начала.. Есть Класс

Сохранение картинок в файл
Здравствуйте! В моей программе возникла потребность сохранять картинки в файл таким образом чтобы: 1. Пользователь не мог его...

Сохранение и чтения текста из 2х текстовых полей в файл
Здравствуйте. Хотелось бы узнать несколько моментов. Например есть 2 поля. Edit и SynEdit Из них текст нужно сохранить и читать в 1...

11
Эксперт .NET
 Аватар для Usaga
14102 / 9319 / 1349
Регистрация: 21.01.2016
Сообщений: 34,996
06.05.2019, 10:37
Alexandr_7, бинарную информацию можно сохранять в текстовом виде в виде Base64.
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
07.05.2019, 12:16  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Alexandr_7, бинарную информацию можно сохранять в текстовом виде в виде Base64.
Я же сказал что тогда пользователь не сможет прочесть эти картинки. Торлько программа. Хотелось бы пользователю дать возможность редактировать картинки без программы. Ну или сделать тогда уж разархиватор и архиватор картинок.
В принципе можно. А как тогда преобразовать массив bitmap'ов с данными картинки в Base64 и на оборот из Base64 получить картинки?
0
Эксперт .NET
 Аватар для Usaga
14102 / 9319 / 1349
Регистрация: 21.01.2016
Сообщений: 34,996
07.05.2019, 12:21
Alexandr_7, что значит "прочесть картинки"? Вы понимаете, что JSON - текстовый документ?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
07.05.2019, 12:28
Почему бы не хранить картинки отдельно, а в json указывать путь к ним? Зачем вам всё в 1 файл пихать?
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
07.05.2019, 13:40  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Почему бы не хранить картинки отдельно, а в json указывать путь к ним? Зачем вам всё в 1 файл пихать?
Я не люблю когда куча файлов напихана.

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Alexandr_7, что значит "прочесть картинки"? Вы понимаете, что JSON - текстовый документ?
Ну так ты же сам сказал хранить в Base64.
Я вот и спрашиваю как массив картинок преобразовать в Base64 и обратно потом.
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
07.05.2019, 13:47
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
как массив картинок преобразовать в Base64 и обратно потом.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public Image Base64ToImage(string base64String)
 {
 
    byte[] imageBytes = Convert.FromBase64String(base64String);
 
    using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
    {
        Image image = Image.FromStream(ms, true);
        return image;
    }
 }
 
public string ImageToBase64(Image image,System.Drawing.Imaging.ImageFormat format)
{
  using (MemoryStream ms = new MemoryStream())
  {
    // Convert Image to byte[]
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();
 
    // Convert byte[] to base 64 string
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
  }
}
1
Эксперт .NET
 Аватар для Usaga
14102 / 9319 / 1349
Регистрация: 21.01.2016
Сообщений: 34,996
07.05.2019, 13:49
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Ну так ты же сам сказал хранить в Base64.
Ну, так а что вы тогда про "Я же сказал что тогда пользователь не сможет прочесть эти картинки."?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
07.05.2019, 13:53
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Я не люблю когда куча файлов напихана.
А как же пользователь, который не сможет прочесть картинки? Вы для себя или для пользователей пишите?
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
07.05.2019, 17:30  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Ну, так а что вы тогда про "Я же сказал что тогда пользователь не сможет прочесть эти картинки."?
Цитата Сообщение от Someone007 Посмотреть сообщение
А как же пользователь, который не сможет прочесть картинки? Вы для себя или для пользователей пишите?
Для этого можно консольный проект преобразования сделать.
Или менять картинки через программу.

Добавлено через 1 час 46 минут
И еще вопрос возник. А как сделать тип данных в классе но чтобы он не серелизовывал тип в файл.
Есть ли параметр который бы заставил серелизатор не видеть тип данных
Вот как серелизация и десерилизация проходит
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/// <summary>
        /// Сохранения информации по эмуляторам
        /// </summary>
        public void SaveSettings()
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
 
            string json = serializer.Serialize(Settings);
 
            File.WriteAllText(PathProgram + PathSettings + FileNameSettings, json);
        }
 
        /// <summary>
        /// Загрузка информации по эмуляторам
        /// </summary>
        public void LoadSettings()
        {
            if (File.Exists(PathProgram + PathSettings + FileNameSettings) == false) return;
 
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            Settings = serializer.Deserialize<AL7_Class_Settings>(File.ReadAllText(PathProgram + PathSettings + FileNameSettings));
        }
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
07.05.2019, 17:45
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Есть ли параметр который бы заставил серелизатор не видеть тип данных
Можно на поле/свойство поставить атрибут, который говорит сериализатору пропускать такие поля/свойства. Как атрибут называется не помню.
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
08.05.2019, 07:40
Цитата Сообщение от Someone007 Посмотреть сообщение
Как атрибут называется не помню
C#
1
[NonSerialized()]
Называется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.05.2019, 07:40
Помогаю со студенческими работами здесь

Сохранение в файл JSON
Необходимо сохранить данные в файл формата json. Имеется код: import psycopg2 import sqlite3 import json pg_connection =...

Как сгенерировать json файл с данными из текстового поля?
Делаю модуль для сайта (Joomla 2.5) - калькулятор стоимости услуг есть несколько полей (данные выводятся в виде таблицы и берутся из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru