delphixe pIplImage 显示到Timage
时间: 2023-09-05 19:07:16 浏览: 118
在 Delphi XE 或更高版本中,由于 VCL 中的 TBitmap 支持 Alpha 通道,因此需要稍微修改一下 IplImageToBitmap 函数,将像素格式改为 pf32bit:
```delphi
procedure IplImageToBitmap(IplImage: pIplImage; var Bitmap: TBitmap);
var
SrcLine, DestLine: Pointer;
x, y: Integer;
SrcBytesPerLine, DestBytesPerLine: Integer;
begin
if (IplImage = nil) or (Bitmap = nil) then
Exit;
Bitmap.PixelFormat := pf32bit; // 修改这里
Bitmap.Width := IplImage.width;
Bitmap.Height := IplImage.height;
SrcBytesPerLine := IplImage.widthStep;
DestBytesPerLine := Bitmap.Width * 4; // 修改这里
x := 0;
y := Bitmap.Height - 1;
while (y >= 0) do
begin
SrcLine := IplImage.imageData + y * SrcBytesPerLine;
DestLine := Bitmap.ScanLine[y];
Move(SrcLine^, DestLine^, DestBytesPerLine);
Inc(y);
end;
end;
```
其余的代码与 Delphi 11 中的示例代码相同。
阅读全文