使用 TCameraComponent
Working with TCameraComponent
我正在尝试使用以下代码调整捕获的 TCameraComponent
图像的大小:
procedure TForm1.GetImage;
begin
imagec.SampleBufferToBitmap(img.Bitmap, True);
with resizedimg.Bitmap do // Resize the image to another bitmap
begin
SetSize(300, 160);
if Canvas.BeginScene then
try
Canvas.DrawBitmap(img.Bitmap, TRectF.Create(0, 0, 300, 160), TRectF.Create(0, 0, 300, 160), 1.0);
finally
Canvas.EndScene;
end;
end;
end;
但是,每次我关闭相机并再次打开它时,调整大小的图像都会捕获实际 TImage
的放大部分。为什么会发生这种行为?我做错了什么?
目标是调整大小 img.Bitmap
以适应 300x160 像素。
DrawBitmap()
的第二个参数应该是正在绘制的 img.Bitmap
的原始大小,而不是您要调整到的大小。
Canvas.DrawBitmap(img.Bitmap, TRectF.Create(0, 0, img.Bitmap.Width, img.Bitmap.Height), TRectF.Create(0, 0, 300, 160), 1.0);
在柏林及之后,TBitmap
有一个 BoundsF
属性 可以代替。
Canvas.DrawBitmap(img.Bitmap, img.Bitmap.BoundsF, TRectF.Create(0, 0, 300, 160), 1.0);
我正在尝试使用以下代码调整捕获的 TCameraComponent
图像的大小:
procedure TForm1.GetImage;
begin
imagec.SampleBufferToBitmap(img.Bitmap, True);
with resizedimg.Bitmap do // Resize the image to another bitmap
begin
SetSize(300, 160);
if Canvas.BeginScene then
try
Canvas.DrawBitmap(img.Bitmap, TRectF.Create(0, 0, 300, 160), TRectF.Create(0, 0, 300, 160), 1.0);
finally
Canvas.EndScene;
end;
end;
end;
但是,每次我关闭相机并再次打开它时,调整大小的图像都会捕获实际 TImage
的放大部分。为什么会发生这种行为?我做错了什么?
目标是调整大小 img.Bitmap
以适应 300x160 像素。
DrawBitmap()
的第二个参数应该是正在绘制的 img.Bitmap
的原始大小,而不是您要调整到的大小。
Canvas.DrawBitmap(img.Bitmap, TRectF.Create(0, 0, img.Bitmap.Width, img.Bitmap.Height), TRectF.Create(0, 0, 300, 160), 1.0);
在柏林及之后,TBitmap
有一个 BoundsF
属性 可以代替。
Canvas.DrawBitmap(img.Bitmap, img.Bitmap.BoundsF, TRectF.Create(0, 0, 300, 160), 1.0);