aaaaaaaaaaa222 Ответов: 2

Сохранение изображения в виде строки (преобразование изображения в строку)


Как использовать этот код в кнопке сохранения для вставки изображения в виде строки в текстовый тип данных в sql server с помощью C# winforms. Приведенный ниже код преобразует изображение в строку, но я не знаю, как использовать его при сохранении/вставке. Любая помощь будет оценена по достоинству. Спасибо!

Что я уже пробовал:

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 Base64 String
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
  }
}

Jochen Arndt

Просто сохраните его в базе данных, как и любую другую строку. Как это сделать, зависит от интерфейса базы данных, используемого вашим приложением.

Однако при использовании двоичных данных обычно их хранят в виде BLOB-объектов (двоичных больших объектов) вместо строк в кодировке base64, что увеличивает размер хранилища.

С очень большими и / или многими изображениями даже принято хранить изображения так, как они есть на диске, и иметь только имя файла в базе данных.

2 Ответов

Рейтинг:
18

OriginalGriff

Не храните изображения в Base64 в своей БД - это очень неэффективно, а изображения достаточно велики, чтобы начать с того, что часто их вообще не стоит хранить. Небольшое количество миниатюр (или изображений размером с большой палец) хорошо-но полноразмерные изображения или большие количества, и вы начинаете резко замедлять все. Лучше всего хранить их в двоичном формате, используя столбец BLOB / IMAGE / VARBINARY, или еще лучше хранить путь к файлу в БД и получать доступ к изображению, которое из него нужно.

Вставка двоичных данных проста - при условии, что вы используете параметризованные запросы, которые всегда должны делать это в любом случае, - вы найдете код здесь: Почему я получаю " параметр недопустим." исключение, когда я читаю изображение из своей базы данных?[^]


CPallini

5.

Рейтинг:
0

OriginalGriff

Новичку противопоставить.

CPallini

Спасибо, Грифф! :-)