請問 TBitmapInfo 的內容, 怎樣放去 TImage 內 ? 因為我有一個dll, 是c++ 寫的, 他的返回值是 LPBITMAPINFO lpBMI;即是 Delphi 的 TBitmapInfo, 我想問一下在 delphi中 timage中的picture.Bitmap如何 能由 TBitmapInfo 取得或轉換成bitmap內容 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我這裏有一段代碼,是把內存流加載到Panel上的,你看一下吧var pBMIInfo: PBITMAPINFO;begin pBMIInfo := AllocMem(sizeof(TBITMAPINFO) + (255 * sizeof(TRGBQuad))); pBMIInfo^.bmiHeader.biSize := sizeof(BITMAPINFOHEADER); pBMIInfo^.bmiHeader.biPlanes := 1; pBMIInfo^.bmiHeader.biBitCount := 24; pBMIInfo^.bmiHeader.biCompression := BI_RGB; pBMIInfo^.bmiHeader.biSizeImage := 0; pBMIInfo^.bmiHeader.biXPelsPerMeter := 0; pBMIInfo^.bmiHeader.biYPelsPerMeter := 0; pBMIInfo^.bmiHeader.biClrUsed := 0; pBMIInfo^.bmiHeader.biClrImportant := 0; ShowVideo(sDir{文件名})endprocedure ShowVideo(sDir: string);var Jpeg : TJPEGImage; BmpS : TBitmap; DcS : HDC;begin try BmpS := TBitmap.Create; Jpeg := TJPEGImage.Create; try DcS := GetDc(plShow.Handle); Jpeg.LoadFromFile(sDir); BmpS.Assign(Jpeg); pBMIInfo^.bmiHeader.biWidth := BmpS.Width; pBMIInfo^.bmiHeader.biHeight := BmpS.Height; SetStretchBltMode(DcS, COLORONCOLOR); if BmpS.Height > 0 then begin StretchDIBits(DcS, 0, 0, plShow.Width,plShow.Height, 0, 0, pBMIInfo^.bmiHeader.biWidth, pBMIInfo^.bmiHeader.biHeight, BmpS.ScanLine[BmpS.Height-1], pBMIInfo^, DIB_RGB_COLORS, SRCCOPY); end; except end; finally FreeAndNil(BmpS); FreeAndNil(Jpeg); ReleaseDC(plShow.Handle, DcS); end;end; 非常感激你 不好意思, 我想問一下, StretchDIBits 是什麼function?另外, 我是己經擁有 TBitmapInfo 的資料了, 但不知怎變回 bitmap出來 我想实现客户端ftp下载上传限速功能,请问如何实现? 急!SPCOM问题,$11无法接收 ADOTable怎么按指定条件查询 高手释疑! 在接口部分使用uses和在实现部分使用uses有何区别 如何启动和停止服务,以及获得启动和停止服务的进度 关于窗口的放置 在线等待,如何将如下代码(C++ Builder)转成DELPHI的? 哪里有NetMeeting sdk编程的相关文档资料、代码等? 如何动态控制dbgrid中行的颜色 请教高手,dbgrideh的滚动条事件在哪设置? 在这里看到一段编码,有些不明之处请解答
var
pBMIInfo: PBITMAPINFO;
begin
pBMIInfo := AllocMem(sizeof(TBITMAPINFO) + (255 * sizeof(TRGBQuad)));
pBMIInfo^.bmiHeader.biSize := sizeof(BITMAPINFOHEADER);
pBMIInfo^.bmiHeader.biPlanes := 1;
pBMIInfo^.bmiHeader.biBitCount := 24;
pBMIInfo^.bmiHeader.biCompression := BI_RGB;
pBMIInfo^.bmiHeader.biSizeImage := 0;
pBMIInfo^.bmiHeader.biXPelsPerMeter := 0;
pBMIInfo^.bmiHeader.biYPelsPerMeter := 0;
pBMIInfo^.bmiHeader.biClrUsed := 0;
pBMIInfo^.bmiHeader.biClrImportant := 0;
ShowVideo(sDir{文件名})
endprocedure ShowVideo(sDir: string);
var
Jpeg : TJPEGImage;
BmpS : TBitmap;
DcS : HDC;
begin
try
BmpS := TBitmap.Create;
Jpeg := TJPEGImage.Create;
try
DcS := GetDc(plShow.Handle);
Jpeg.LoadFromFile(sDir);
BmpS.Assign(Jpeg);
pBMIInfo^.bmiHeader.biWidth := BmpS.Width;
pBMIInfo^.bmiHeader.biHeight := BmpS.Height;
SetStretchBltMode(DcS, COLORONCOLOR);
if BmpS.Height > 0 then
begin
StretchDIBits(DcS, 0, 0, plShow.Width,plShow.Height,
0, 0, pBMIInfo^.bmiHeader.biWidth, pBMIInfo^.bmiHeader.biHeight,
BmpS.ScanLine[BmpS.Height-1], pBMIInfo^, DIB_RGB_COLORS, SRCCOPY);
end;
except
end;
finally
FreeAndNil(BmpS);
FreeAndNil(Jpeg);
ReleaseDC(plShow.Handle, DcS);
end;
end;
不好意思, 我想問一下, StretchDIBits 是什麼function?另外, 我是己經擁有 TBitmapInfo 的資料了, 但不知怎變回 bitmap出來