Конвертировать байтовые данные в изображение и сохранить? Используя запрос SQL - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть таблица, как показано ниже

IMAGEID          COVERPAGEIMAGE       IMAGENAME
------------------------------------------------
LME111201908576  0x89504E470D0A1...   NULL

Я хочу преобразовать все типы COVERPAGEIMAGE из varbinary(max) в png / jpeg-изображение и обновить имя в IMAGENAME, используя SQL query.

Таблица содержит почти 10000 строк данных. Я не мог найти более быстрый способ сделать это, но любая помощь или руководство будут признательны.

1 Ответ

0 голосов
/ 21 апреля 2020

Существует метод File.WriteAllBytes, который может помочь создать файл из данных BLOB-объектов. Например,

...
using (var r =  cmd.ExecuteReader())
{
    while (r.Read())
    {
         File.WriteAllBytes("C:\temp\" + (string)r["IMAGEID"]+ ".png",
              (byte[])r["COVERPAGEIMAGE"]);
     }

}

Назначение IMAGENAME будет зависеть от того, как будут выглядеть имена целевых файлов. Если имя файла всегда будет равно IMAGEID + ". Png", как в примере выше, этот столбец может вообще не понадобиться.

То же самое можно сделать только с sql: самым быстрым способом экспорта BLOB-объектов из таблицы в отдельные файлы

...