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

Вниз

Конвертация TBitmap в TGPBitmap   Найти похожие ветки 

 
Беликов А.А   (2010-05-04 10:08) [0]

Какие еще способы есть, кроме кривой переливки байтов из TBitmap в TGpBitmap ?

Пример способа переливки:
var
 BMP: TBitmap;
 GPBMP: TGPBitmap;
 Info: PBitmapInfo;
 Image: Pointer;
 InfoSize, ImageSize: Cardinal;
begin
 BMP := TBitmap.Create;
 BMP.LoadFromFile("1.bmp");

 GetDIBSizes(BMP.Handle, InfoSize, ImageSize);

 Image := AllocMem(ImageSize);
 Info := AllocMem(InfoSize);

 GetDIB(BMP.Handle, 0, Info^, Image^);
 GPBMP := TGPBitmap.Create(Info^, Image);


 
Andy BitOff ©   (2010-05-04 10:48) [1]

А в чем задача? Почему сразу не загрузить .bmp в GPBMP?


 
Беликов А.А   (2010-05-04 15:32) [2]


> Andy BitOff ©   (04.05.10 10:48) [1]
> А в чем задача? Почему сразу не загрузить .bmp в GPBMP?


Битмап находится в TImageList. Точнее выдергивается из него методом GetBitmap.


 
Andy BitOff ©   (2010-05-04 16:09) [3]

Тогда кури Stream Save/Load


 
Andy BitOff ©   (2010-05-05 10:00) [4]

Вчера не до того было =)
Вот сегодня.

implementation

uses
 ActiveX;

{$R *.dfm}

 type
 TFixedStreamAdapter = class(TStreamAdapter)
   public
     function Stat(out statstg: TStatStg; grfStatFlag: Longint): HResult; override; stdcall;
   end;

{ TFixedStreamAdapter }

function TFixedStreamAdapter.Stat(out statstg: TStatStg; grfStatFlag: Integer): HResult;
begin
 Result := inherited Stat(statstg, grfStatFlag);
 statstg.pwcsName := nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 bmp: TBitMap;
 image: TGPBitmap;
 graphics : TGPGraphics;
 strm: TStream;
begin
 bmp := TBitmap.Create;
 strm := TMemoryStream.Create;
 try
   ImageList1.GetBitmap(0, bmp);
   bmp.SaveToStream(strm);
   image := TGPBitmap.Create(TFixedStreamAdapter.Create(strm));
   graphics := TGPGraphics.Create(Canvas.Handle);
   graphics.DrawImage(Image, 50, 50);
   graphics.Free;
   image.Free;
 finally
   strm.Free;
   bmp.Free;
 end;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.707 c
8-1204373917
dambo
2008-03-01 15:18
2010.08.27
полигон и текстура


2-1269197259
Fr
2010-03-21 21:47
2010.08.27
TRichEdit и SelStart


15-1272364526
TUser
2010-04-27 14:35
2010.08.27
Удаление комментариев и лишнего кода


2-1275132390
shkurkin
2010-05-29 15:26
2010.08.27
Ньюансы работы с COM-портами и асинхронный ввод/вывод


2-1270885260
roman2
2010-04-10 11:41
2010.08.27
Координаты точки