Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.22;
Скачать: CL | DM;

Вниз

Ошибка "JPEG error #41"   Найти похожие ветки 

 
leonidus   (2008-06-03 12:22) [0]

Читаю из базы BLOB-поле содержащее JPEG, но он там зашифрован немного, точнее куски файла переставлены местами. Процедура выглядит так:

var
Stream,Stream_:tStream;
JPG:TJPEGImage;

buffer:array[1..1000] of char;
buffer_:array[1..500000] of char;
MS:TMemoryStream;
begin

Stream:=ADODataSet1.CreateBlobStream(ADODataSet1.FieldByName("picture"), bmRead);

MS:=TMemoryStream.Create;

if Stream.Size>0 then
begin
 JPG:=TJPEGImage.Create;

 //получаем два куска, на 1000 байт и остальную часть
 Stream.Seek(0,soFromBeginning);
 Stream.ReadBuffer(buffer,1000);
 Stream.Seek(1000,soFromBeginning);
 Stream.ReadBuffer(buffer_,Stream.Size-1000);

 //переставляем их местами
 MS.Write(buffer_,Stream.Size-1000);
 MS.Write(buffer,1000);

 try
  JPG.LoadFromStream(MS);
  ms.Free;
  Image1.Picture.Assign(JPG);
 finally
  JPG.Free;
  Stream.Free;
 end;
end;

после выполнения этого кода, на строчке Image1.Picture.Assign(JPG); получаю ошибку JPEG error #41. Я бы все понял возможно ошибка в расшифровке, но если написать:

//переставляем их местами
 MS.Write(buffer_,Stream.Size-3000);
 MS.Write(buffer,3000);
 ms.SaveToFile("d:\1.jpg");

то полученный файл d:\1.jpg отлично открывается через ACDSee, да и принудительно в TImage я его загрузить тоже могу, откуда же тогда ошибка?


 
leonidus   (2008-06-03 14:39) [1]

Ошибка, надо так:

//переставляем их местами
MS.Write(buffer_,Stream.Size-1000);
MS.Write(buffer,1000);
ms.SaveToFile("d:\1.jpg");



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

Текущий архив: 2011.05.22;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.011 c
15-1296909375
Дмитрий
2011-02-05 15:36
2011.05.22
Проблема с сетью


2-1297759890
Scott Storch
2011-02-15 11:51
2011.05.22
как обойти ограничение в 2 Гб. для стримов?


6-1237262725
alshtam
2009-03-17 07:05
2011.05.22
вопрос по Indy


2-1297334588
RUu
2011-02-10 13:43
2011.05.22
invalid pointer operation


9-1189098446
Kav
2007-09-06 21:07
2011.05.22
glUseProgramObjectARB(0) ; жуткие тормоза