Какой самый простой способ просмотреть сжатую информацию, хранящуюся в столбце «изображение»? [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Какой самый простой способ просмотреть сжатую информацию, хранящуюся в столбце «изображение»? [закрыто]

Сообщение Anonymous »

Я работаю с приложением C#, где мне нужно просмотреть изображения, хранящиеся в столбце базы данных SQL Server типа IMAGE, из устаревшей базы данных [изменить невозможно]. Однако данные в этом столбце, похоже, сжаты с помощью BLOBZIP [Я знаю, потому что вы можете увидеть это, открыв средство просмотра изображений SQL, и я сталкиваюсь с проблемами при попытке прочитать и отобразить изображения.Я пробовал различные библиотеки и методы для распаковки и предварительного просмотра этих данных, в том числе: SharpZipLib, SharpCompress и BZip2Sharp, но постоянно сталкиваюсь с ошибками.
Дополнительная информация:< /p>
  • База данных SQL Microsoft SQL Server 2000 — 8.00.2066
  • Это образ (это устаревшая база данных, и она изображение можно просмотреть с помощью программы "SQL Image Viewer")
  • Некоторые ошибки:
System.ArgumentException: «Параметр недействителен».

System.FormatException: «Дополнительные неразбираемые символы находятся в конце строки».
< /blockquote>
  • Я попробовал Gzipstream
  • Я увидел «Магию номер», а не «504B 0304».
  • Это «BLOBZIP», как я смог увидеть с помощью «Программного обеспечения SQL Image Viewer».
  • Пример поля [видно с помощью программы просмотра изображений SQL]
0x424C4F425A495000140000004702000001000000789C55525B4FC230186D5C2228372F81C4B7EF07485011E1B5DBCAA86C2D6987806F 041643228C6C4BF071FF1C3F1C33F0D4E63BA7E7D276BFBF205562B9AB3899CBE...
  • Эти байты не совпадают с подписью ZIP-файла (504B 0304). Однако последовательность 78 9C, появляющаяся позже в строке, предполагает, что это могут быть сжатые данные zlib, которые часто начинаются с этих байтов. Я также запускаю SharpZipLib, который не идентифицирует никакой другой информации.
Проблема похожа на обсуждаемую здесь проблему, но этот вопрос не касается сценарий, где данные сжаты, и, очевидно, я пришел сюда после долгих поисков.
Мне нужна информация в BASE64!
ЗДЕСЬ ОДИН ТЕСТ, РЕЗУЛЬТАТ КОТОРОГО БЫЛ «System.ArgumentException: 'Параметр недействителен'».
КОД:
hexString = «..» ;

Код: Выделить всё

        // Remove the "0x" prefix
hexString = hexString.Substring(2);

// Convert hexadecimal string to byte array
byte[] imageBytes = new byte[hexString.Length / 2];
for (int i = 0; i < hexString.Length; i += 2)
{
imageBytes[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
}

// Create a memory stream from the byte array
using (MemoryStream ms = new MemoryStream(imageBytes))
{
// Create a Bitmap from the memory stream
Bitmap image = new Bitmap(ms);

// Display the image (this will open the default image viewer on the system)
image.Save("output_image.png");
Console.WriteLine("Image saved as output_image.png");
}
Кто-нибудь успешно выполнил распаковку данных изображения, хранящихся в столбце IMAGE, сжатом с помощью BLOBZIP? Если да, не могли бы вы поделиться подходом или примерами кода, которые вам помогли?

Подробнее здесь: https://stackoverflow.com/questions/788 ... n-image-co
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»