Форум: "Media";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
ВнизBMP -> GIF ??? Найти похожие ветки
← →
RAA (2003-04-15 09:10) [0]Мне нужно перевести BMP -> GIF с 8 битной палитрой
отображать мне его не нужно...
далее я его хочю по HTTP протоколу откинуть клиенту....
как это сделать?
← →
Карелин Артем (2003-04-15 15:02) [1]А в чем проблема-то? Делаешь в Run-time компонент, работающий с гифами, например RxGifAnimator из пакета RxLib, считываешь в него битмап и сохраняешь гиф в поток.
Дальше средствами WebApplication.Response отсылаешь полученный поток клиенту, устанавливавая ContentType в нужный тип/подтип.
Вот пример по формированию jpeg:
This example shows an OnAction event handler that sends a response message that contains a jpeg image taken from a database table.
procedure TCustomerInfoModule.CustomerInfoModuleGetImageAction( Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
Jpg: TJpegImage;
S: TMemoryStream;
P: TPicture;
begin
Jpg := TJpegImage.Create;
try
P := TPicture.Create;
P.Assign(BioLifeGraphic);
Jpg.Assign(P.Graphic);
S := TMemoryStream.Create;
try
( S)А в чем проблема-то? Делаешь в Run-time компонент, работающий с гифами, например RxGifAnimator из пакета RxLib, считываешь в него битмап и сохраняешь гиф в поток.
Дальше средствами WebApplication.Response отсылаешь полученный поток клиенту, устанавливавая ContentType в нужный тип/подтип.
Вот пример по формированию jpeg:
This example shows an OnAction event handler that sends a response message that contains a jpeg image taken from a database table.
procedure TCustomerInfoModule.CustomerInfoModuleGetImageAction( Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
Jpg: TJpegImage;
S: TMemoryStream;
P: TPicture;
begin
Jpg := TJpegImage.Create;
try
P := TPicture.Create;
P.Assign(BioLifeGraphic);
Jpg.Assign(P.Graphic);
S := TMemoryStream.Create;
try
Jpg.SaveToStream(S);
S.Position := 0;
Response.ContentType := "image/jpeg";
Response.ContentStream := S;
Response.SendResponse;
finally
P.Free;
S.Free;
end;
finally
Jpg.Free;
end;
end;
← →
RAA (2003-04-17 10:12) [2]А где можно взять RxLib?
← →
Владимир Васильев (2003-04-17 13:34) [3]лучше воспользоваться GDI+ (для 2K нужна DLL - в XP уже всё есть)
хидеры,хелр и примеры лежат на http://www.progdigy.com/
..............
implementation
uses GDIPAPI, GDIPOBJ, GDIPUTIL, ActiveX;
.........
var
encoderClsid : TGUID;
stat : TStatus;
Image : TGPImage;
Stream : TMemoryStream;
.......
//можно грузить и из потока
Image := TGPImage.Create("name.bmp");
Stream:=TMemoryStream.Create;
try
// получить CLSID для Gif encoder.
GetEncoderClsid("image/gif", encoderClsid);
// сохранить в файл или поток попутно конвертировав
stat:= image.Save("name.gif",ncoderClsid, nil);
stat:= image.Save(TStreamAdapter.Create(Stream),ncoderClsid, nil);
if (stat = Ok) then // юзаем stream , например:
( "name2.gif") лучше воспользоваться GDI+ (для 2K нужна DLL - в XP уже всё есть)
хидеры,хелр и примеры лежат на http://www.progdigy.com/
..............
implementation
uses GDIPAPI, GDIPOBJ, GDIPUTIL, ActiveX;
.........
var
encoderClsid : TGUID;
stat : TStatus;
Image : TGPImage;
Stream : TMemoryStream;
.......
//можно грузить и из потока
Image := TGPImage.Create("name.bmp");
Stream:=TMemoryStream.Create;
try
// получить CLSID для Gif encoder.
GetEncoderClsid("image/gif", encoderClsid);
// сохранить в файл или поток попутно конвертировав
stat:= image.Save("name.gif",ncoderClsid, nil);
stat:= image.Save(TStreamAdapter.Create(Stream),ncoderClsid, nil);
if (stat = Ok) then // юзаем stream , например:
Stream.SaveToFile("name2.gif");
finally
Stream.free;
end;
image.Free;
...........
← →
RAA (2003-04-24 08:54) [4]А как в объект Image перенести графику из TBitmap???
← →
RAA (2003-04-24 08:56) [5]Только не говорите что-бы через сохранение на винте...-)))
У меня BMP ники по 2-5 мега...теряется весь смысл...
← →
Карелин Артем (2003-04-24 14:07) [6]А про метод Assign ты слышал? По моему примеру глазками пробежался?
← →
Владимир Васильев (2003-04-24 15:48) [7]>А как в объект Image перенести графику из TBitmap
если вопрос относится к GDI+, то можно, например, использовать перегружаемый конструктор ( через IStream):
......
Bitmap : TBitmap
.....
Bitmap.SaveToStream(Stream);
Image := TGPImage.Create((TStreamAdapter.Create(Stream));
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c