Olá, estou com um pequeno problema, espero que possam me ajudar Smile Tenho um sistema de confecção de carteiras, onde a foto e obtida por uma webcam, uso o DSPack para isso. Peguei um modelo pronto que vem com o DSPack(tá aí meu 1° erro) e contrui o formulário e botões em cima do modelo pronto. E fiz o sistema, está funcionando perfeitamente... Mas Eu estava fazendo testes gravando vários registros com foto e tal, a foto é salva no hd e no BD os dados do formulário e o caminho da foto. Quando eu havia gravado mais ou menos 40 cadastros(cada cadastro vai uma foto) deu o seguinte erro: "espaço insuficiente de armazenamento para processar este comando" Creio eu que seja porque no botão FOTOGRAFAR cada clique que eu dou a função é chamada, então eu chamei a mesma função 40 vezes :S Pesquisei na internet e achei esse tópico que é exatamente o meu problema: http://www.tiforum.com.br/viewtopic.php?f=3&t=6468 Preciso muito solucionar isso, obrigado a todos! Os códigos: botão fotografar: Código: SampleGrabber.GetBitmap(Image.Picture.Bitmap);
Image.Picture.Bitmap := CortarImagem(Image.Picture.Graphic, Bounds(280, 0, Image.Picture.Width, Image.Picture.Height - 0));
Função:
Código:
Function CortarImagem(Imagem: TGraphic; Valores: TRect): TBitmap;
var
bmp, tbmp: TBitmap;
drect: TRect;
begin
bmp := TBitmap.Create;
bmp.Height := Valores.Bottom - Valores.Top;
bmp.Width := Valores.Right - Valores.Left;
drect := Bounds(0, 0, bmp.Width, bmp.Height);
try
tbmp := TBitmap.Create;
tbmp.Height := Imagem.Height;
tbmp.Width := Imagem.Width;
//tbmp.Canvas.Draw(500,0,Imagem);
tbmp.Canvas.Draw(140,0,Imagem);
bmp.Canvas.CopyRect(drect, tbmp.Canvas, Valores);
Result := bmp;
finally
tbmp.Free;
end;
end;