У меня есть длинный необработанный столбец, содержащий изображение tiff, которое сохраняется приложением oracle form, я пытаюсь получить изображение с помощью c # и безуспешно сохранить его, изображение допустимо, но на нем отображается дерьмовый рисунок.
Определение столбца базы данных
SIGNATURE NOT NULL LONG RAW()
C # код
внутреннее сохранение void (строка аккаунта)
{
var commonAccount = new List ();
using (OracleConnection cn = new OracleConnection(ConfigurationManager.ConnectionStrings["-----"].ConnectionString))
{
var imgCmd = new OracleCommand("select SIGNATURE, number, code, name from table_name where number = ***** and code = *****", cn);
imgCmd.InitialLONGFetchSize = -1;
cn.Open();
var reader = imgCmd.ExecuteReader();
if (reader.Read())
{
//var v1 = reader[0];
var v2 = reader[1].ToString();
var v3 = reader[2].ToString();
var v4 = reader[3].ToString();
OracleBinary imgBinary = reader.GetOracleBinary(0);
// Get the bytes from the binary obj
byte[] imgBytes = imgBinary.IsNull ? null : imgBinary.Value;
var newData = Convert.ToBase64String(imgBytes);
MemoryStream stream = new MemoryStream();
stream.Write(imgBytes, 0, imgBytes.Length);
Bitmap bm = new Bitmap(stream);
bm.Save("d:\\image.tif", System.Drawing.Imaging.ImageFormat.Tiff);
}
reader.Close();
}
Сохраненное изображение выглядит как
Я построил новую форму оракула и связал изображение с колонкой, и оно отображается правильно, есть идеи?
EDIT:
Я обнаружил, что изображение в базе данных Oracle сохранено в порядке байтов Big-Endian