Главная страница
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.023 c
1-65817
Ломброзо
2003-11-10 11:02
2003.11.20
VB ActiveX


14-66124
KoSt1
2003-10-28 18:05
2003.11.20
пароли


14-66087
horus
2003-10-29 16:43
2003.11.20
Идея создания дискуссионного листа рассылки воплотилась в жизнь!!


1-65849
A natoly
2003-11-11 13:00
2003.11.20
Люди, помогите сделать ф-ю, вырезки части в строковой переменной


3-65771
smu
2003-10-31 08:53
2003.11.20
При работе с двумя TQuery, связанными с одним TDatabase, проподаю