Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Вниз

Выгрузка картинки из поля MSSQL в jpg файл   Найти похожие ветки 

 
mefodiy   (2008-08-29 10:48) [0]

В MSSQL есть BLOB поле под названием "Picture". Нужно получить и сохранить его в виде JPEG файла.
Делаю так:

(FieldByName("Picture") as TBlobField).SaveToFile("c:\1.jpg");

Файл нормально создается, но не открывается ни одним просмотрщиком картинок. Вероятно, файл создается с "неправильной" структурой.
В чем тут может быть дело?
Спасибо.


 
DVM ©   (2008-08-29 10:50) [1]


> В чем тут может быть дело?

в том что он уже в базе лежит в неправильном формате


 
Vlad Oshin ©   (2008-08-29 11:02) [2]

так что-нибудь показывает?
Image1.Picture.Bitmap.Assign(TBLOBField(Table1.Fields[1]));


 
Ega23 ©   (2008-08-29 11:07) [3]


> Вероятно, файл создается с "неправильной" структурой.
> В чем тут может быть дело?


Из базы выгружаешь правильно. Значит там лежит некорректный jpeg. Или вообще не jpeg.


 
Плохиш ©   (2008-08-29 11:12) [4]


> mefodiy   (29.08.08 10:48)  
> В MSSQL есть BLOB поле под названием "Picture". Нужно получить
> и сохранить его в виде JPEG файла.

Хм, оригинально, какой-нибуть ворд-документ в виде jpeg файла :-))


 
Ega23 ©   (2008-08-29 11:16) [5]

автор, какие первые 4 байта в c:\1.jpg?


 
mefodiy   (2008-08-29 12:54) [6]

Дополнительная информация

Вообще-то это БД от Navision. В самом Navision есть возможность выгружать картинки командами
Picture.EXPORT("c:\1.jpg");
Picture.EXPORT("c:\1.bmp");
И тот, и другой формат после выгрузки нормально просматривается всеми известными программами. Но в Delphi, если через TImage bmp загружается и просматриватся нормально, то jpg дает ошибку "JPEG error #53".
В то же время
  1. (FieldByName("Picture") as TBlobField).SaveToFile("c:\1.jpg");
при выполнении ошибки не дает, но созданный файл при загрузке в TImage дает ту же ошибку "JPEG error #53".  
  2. Команда
  Image1.Picture.Bitmap.Assign(TBLOBField(FieldByName("Picture")));
при выполнении дает ошибку:
"Bimap image is not valid"


 
Ega23 ©   (2008-08-29 13:00) [7]


JPEG error #36 - Output File Error - Possibly out of disk space
JPEG error #51 - Quantization table not defined
JPEG error #52 - File is not a JPEG file
JPEG error #53 - Insufficient Memory
JPEG error #60 - Incomplete File
JPEG error #67 - Incomplete File


 
mefodiy   (2008-08-29 13:12) [8]

>JPEG error #53 - Insufficient Memory
Как лечить?


 
stas ©   (2008-08-29 13:25) [9]

mefodiy   (29.08.08 12:54) [6]
Рисунок у них в базе может хранится как угодно, допустим bmp сжатый раром или зипом.


 
Vlad Oshin ©   (2008-08-29 13:25) [10]

а если

загрузить(средствами delphi )
заранее читаемую(средствами delphi ) картинку и
выгрузить(средствами delphi )

, читается?


 
mefodiy   (2008-08-29 14:02) [11]

>а если
>загрузить(средствами delphi )
>заранее читаемую(средствами delphi ) картинку и
>выгрузить(средствами delphi )
>, читается?

 MyPicture.LoadFromFile("...");
 MyPicture.SaveToFile("...");

Все нормально читается


 
Плохиш ©   (2008-08-29 14:15) [12]


> mefodiy   (29.08.08 14:02) [11]
> Все нормально читается

А теперь попробуй выгрузить их с помощью

> Вообще-то это БД от Navision. В самом Navision есть возможность
> выгружать картинки командами
> Picture.EXPORT("c:\1.jpg");
> Picture.EXPORT("c:\1.bmp");

А потом долго подумай...


 
Anatoly Podgoretsky ©   (2008-08-29 15:13) [13]

Значит надо делать средствами Navision, видимо хранится не в чистом, а в своем формате, при экспорте преобразовывается в нужный.

И где первые четыре байта файла?


 
mefodiy   (2008-08-29 15:42) [14]

>Значит надо делать средствами Navision, видимо хранится не в чистом, а в >своем формате, при экспорте преобразовывается в нужный.

База данных Navision построена на MSSQL и тип поля там BLOLB.
К сожалению, это надо делать именно средствами Дельфи.
Как могу посмотреть первые 4 байта?


 
Vlad Oshin ©   (2008-08-29 15:44) [15]


> Как могу посмотреть первые 4 байта?

hex редактор


 
Ega23 ©   (2008-08-29 15:47) [16]


> Как могу посмотреть первые 4 байта?


stream.readBuff


 
stas ©   (2008-08-29 15:48) [17]

>mefodiy   (29.08.08 15:42) [14]
В BLOB хранится может все что угодно
stas ©   (29.08.08 13:25) [9]


 
Anatoly Podgoretsky ©   (2008-08-29 16:31) [18]

После "(FieldByName("Picture") as TBlobField).SaveToFile("c:\1.jpg");" посмотреть любым HEX редактором, результат сюда.


 
Vlad Oshin ©   (2008-08-29 16:52) [19]


> Рисунок у них в базе может хранится как угодно, допустим
> bmp сжатый раром или зипом

кстати, да. Не понятно зачем, но может.
Может его сохранить как zip и натравить архиватор?
zip - просто, архиваторы теперь умные, сами попробуют определить что это.


 
mefodiy   (2008-08-29 19:46) [20]

Первые четыре байта:
01 44 7C 5A


 
Amoeba ©   (2008-08-29 22:01) [21]


> mefodiy   (29.08.08 19:46) [20]
>
> Первые четыре байта:
> 01 44 7C 5A
>

Это х.з., но только не JPEG: FFD8FFE1


 
Ega23 ©   (2008-08-31 14:19) [22]


> Первые четыре байта:
> 01 44 7C 5A
>


Это не jpeg. Вообще непонятно, что это такое.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.058 c
15-1219215654
Nucer
2008-08-20 11:00
2008.10.12
Помогите организовать структуру


15-1219314183
Vlad Oshin
2008-08-21 14:23
2008.10.12
Испортился DVD диск. Как можно попытаться скопировать?


15-1219059232
Мозгобой
2008-08-18 15:33
2008.10.12
Проблема с DVD-Rom ом на ноутбуке.


15-1219226478
silver222
2008-08-20 14:01
2008.10.12
Вывод фотографий


15-1219228723
Квэнди
2008-08-20 14:38
2008.10.12
ModelMaker отображение полей класса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский