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

Вниз

Jpeg в поток   Найти похожие ветки 

 
Oleg_   (2003-11-08 00:12) [0]

var ...
sm: TmemoryStream;
//Следующая строка выполняется только если в bitmap
//сидит картинка bmp, если же jpeg то sm остается пустым.

Image1.Picture.Bitmap.SaveToStream(sm);

//Как можно загнать Jpeg в поток?


 
Palladin ©   (2003-11-08 00:17) [1]

попробуй вызвать перед записью TJpegImage.DIBNeeded


 
wicked ©   (2003-11-08 00:29) [2]

TJpegImage.SaveToStream....


 
Oleg_   (2003-11-08 00:39) [3]

Пробовал, не помогает да и собственно TJpegImage.DIBNeeded обеспечивает декомпрессию.


 
Oleg_   (2003-11-08 00:44) [4]

TJpegImage.SaveToStream тоже пробовал

...
jp := TJPEGImage.Create;
jp.Assign(wotchet.image_profil.Picture.Bitmap);
// jp.CompressionQuality:=80;
jp.Compress;
jp.JPEGNeeded;
//jp.DIBNeeded;
Image1:=TImage.Create(nil);
Image1.Picture.Assign(jp);
jp.SaveToStream(sm);
//Image1.Picture.Bitmap.SaveToStream(sm);
jp.Free;
Image1.Free;
...
При таком коде как ни странно в поток попадает bmp,
попадает именно здесь, я проверял, комментировал
jp.SaveToStream(sm); в этосм случае поток был пуст.


 
Oleg_   (2003-11-08 16:45) [5]

Поток в дальнейшем попадает в вебброузер по средствам переопределения пространства имен
namespace

Изменеия параметра
jp.CompressionQuality:=80;
сказываются на качестве выдаваемого изображения, а вот уже из вебброузера рисунок сохраняется только как БМП.


 
Oleg_   (2003-11-08 22:18) [6]

Пробовал непосредственно из jpg файла залить изображение
И результат тот же. Из вебброузера рисунок сохраняется только как bmp.
Быть может при такой потоковой отправке данных необходимо как-то указать тип данных?

F := TFileStream.Create("c:\1.jpg", fmOpenRead);
CreateStreamOnHGlobal(0, True, DataStream);
TOleStream.Create(DataStream).CopyFrom(F, F.Size);
DataStream.Seek(0, STREAM_SEEK_SET, Dummy);
TotalSize := F.Size;
F.Free;

(*Inform Transaction handler that all data is ready *)
ProtSink.ReportData(BSCF_FIRSTDATANOTIFICATION or
BSCF_LASTDATANOTIFICATION or BSCF_DATAFULLYAVAILABLE, TotalSize, TotalSize);
(* -> Here our Read Method is called by transaction handler*)
ProtSink.ReportResult(S_OK, S_OK, nil);
(* Report result to transaction handler. Our Terminate method will be called *)
Result := S_OK;


 
Oleg_   (2003-11-08 22:36) [7]

Конечно же если отключить обработку загрузки изображения (без использования пространства имен) и вебброузер сам его находит jpeg по определенному пути, то по команде сохранить рисунок как... есть опция jpeg.



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
3-65694
Mikle
2003-10-30 11:52
2003.11.20
Как перетащить таблицу SQL из одной базы в другую?


1-65822
rel_
2003-11-10 11:58
2003.11.20
Вопрос по Excel


3-65689
SasaR
2003-11-03 12:31
2003.11.20
Locate - быстрее....


1-65971
UniQ
2003-11-10 19:23
2003.11.20
TListView


1-65958
Fast
2003-11-11 10:30
2003.11.20
Вызов функции