Delphi Wacom SDK

时间:2016-05-26 09:34:25

标签: delphi sdk wacom

最近我公司购买了一台Wacom STU-530签名板,并且我已经实现了一个从其获取客户签名并创建带有签名的pdf的程序。 我使用FastReport来实现PDF,但我需要从wacom平板电脑获取签名。 有了sdk,我意识到了这段代码:

procedure TfrmMain.btnFirmaClick(Sender: TObject);
var
  objFirma: SigObj;
  ctlFirma: TSigCtl;
  picFirma: TPicture;
  res: CaptureResult;
begin
  picFirma := TPicture.Create;
  ctlFirma := TSigCtl.Create(Self);
  res := ctlFirma.Capture('Firmare per accettazione',
    'Formazione del personale in affiancamento');
  case res of
    CaptureOK: begin
      objFirma := SigObj(ctlFirma.Signature);
      SetOlePicture(picFirma, objFirma.Picture(300, 300, 'image/bmp', 0.5, $000000,
        $ffffff, -1.0, -1.0, RenderOutputPicture or RenderColor32BPP or
        RenderEncodeData));
      picFirma.SaveToFile('firma.bmp');
    end;
  end;
  ctlFirma.Free;
  picFirma.Free;
end;

SigObj有一个返回IPictureDisp的方法,我需要将它转换为TImage,所以我使用了SetOlePicture,但是当我保存图像时它是不可读的。如果我尝试用

保存图片
picFirma.bitmap.SaveToFile('firma.bmp')  

生成的位图无效。 我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

根据随Signature SDK提供的Signature Components API获取位图中的签名,您应该使用RenderBitmap方法。

  

RenderBitmap(outputFilename,dimensionX,dimensionY,mimeType,inkWidth,nkColor,backgroundColor,paddingX,paddingY,flags)
  呈现签名图像,创建图像文件或返回   二进制数据。可选地对生成的SigObj数据进行编码   使用隐写技术的图像。

    objFirma:= SigObj(ctlFirma.Signature);
    objFirma.RenderBitmap('firma.bmp', 300, 300, 'image/bmp', 0.5, $000000,
    $ffffff, -1.0, -1.0, RenderOutputFilename or RenderColor32BPP or RenderEncodeData);