怎么将Pbyte类型中的图片存入bit地图中

如何将Pbyte类型中的图片存入bitmap中。
我得到了一个Pbyte类型的图片,可是如何将它存入到Tbimap类型中呢,我需要做一些后期处理。
------解决方案--------------------
你要知道这缓冲区的图片的宽,高,位深,才能正确显示出来
给你个例子看下,ph 里包含了这些信息

function OnPreview(ph : PBitmapInfoHeader; buff: pbyte): HRESULT; stdcall;
  var dc : HDC;
      iw,ih : Integer;
      bmp : TGpBitmap;
      bd : TBitmapData;
      gp : TGpGraphics;
begin
  dc := GetDC(form1.pnlDc.Handle);
  bmp := TGpBitmap.Create(ph^.biWidth,ph^.biHeight,pf24bppRGB);
  bd := bmp.LockBits(GpRect(0,0,bmp.Width,bmp.Height),[imRead],pf24bppRGB);
  CopyMemory(bd.Scan0,buff,bd.Height * bd.Stride);
  bmp.UnlockBits(bd);
  bmp.RotateFlip(rfX180);
  iw := form1.pnlDc.Width;
  ih := Round(ph^.biHeight * iw/ph^.biWidth);
//  StretchDIBits(dc,0,0,iw,ih,0,0,ph^.biWidth,ph^.biHeight,buff,pBITMAPINFO(ph)^,DIB_RGB_COLORS, SRCCOPY);//拉伸显示时效果不好,所以用TGPBITMAP类来转换
  gp := TGpGraphics.Create(dc);
  gp.DrawImage(bmp,GpRect(0,0,iw,ih),0,0,bmp.Width,bmp.Height,utPixel);
  FreeAndNil(bmp);
  FreeAndNil(gp);
  ReleaseDC(Form1.pnlDc.Handle,dc);
end;