XE6 控件太强了CameraComponent就可以了

 

CameraComponent1.Active := True;

procedure TCameraComponentForm.CameraComponent1SampleBufferReady(Sender: TObject; const ATime: Int64);
begin
  TThread.Synchronize(TThread.CurrentThread, GetImage);
  // imgCameraView.Width := imgCameraView.Bitmap.Width;
  // imgCameraView.Height := imgCameraView.Bitmap.Height;
end;


procedure TCameraComponentForm.GetImage;
begin
  CameraComponent1.SampleBufferToBitmap(imgCameraView.Bitmap, True);
end;


procedure TCameraComponentForm.btnSaveClick(Sender: TObject);
var
  filename: string;
begin
  filename := FormatDateTime('yymmddHHmmss', Now()) + '.jpg';
  filename := TPath.GetPicturesPath + PathDelim + filename;
  imgCameraView.Bitmap.SaveToFile(filename);
end;
前后照相机切换,自拍模式
procedure TCameraComponentForm.btnBackCameraClick(Sender: TObject);
begin
  { select Back Camera }
  CameraComponent1.Active := False;
  CameraComponent1.Kind := FMX.Media.TCameraKind.BackCamera;
  CameraComponent1.Active := True;
end;

procedure TCameraComponentForm.btnFrontCameraClick(Sender: TObject);
begin
  { select Front Camera }
  CameraComponent1.Active := False;
  CameraComponent1.Kind := FMX.Media.TCameraKind.FrontCamera;
  CameraComponent1.Active := True;
end;

 Image1.Bitmap.Assign(Image2.Bitmap);

ImageViewer1.Bitmap.LoadFromStream(stream)

posted on 2014-08-07 17:49  lypzxy  阅读(409)  评论(0编辑  收藏  举报