Meu camarada, boa noite!
Você informou que a imagem já está salva no banco de dados em formato
JPG correto.

Em caso afirmativo, eu pus no meu form um TImage(propriedade visible =
false), e usei a função ExibeFoto para inseri-la no TImage desta forma:

TImage.Picture := nil;
ExibeFoto(Nome do DataSet, 'campo', TImage);

neste momento a imagem está no TImage;

para salva-la em disco, eu uso desta forma:

TImage.Picture.SaveToFile('Nome do caminho a ser salvo tipo C:\temp\' +
        Nome do dataSet com o campo ex: DataSetFoto.Value + '.jpg');

limpo o TImage

TImage.Picture := Nil

veja o pedaço do meu código e veja se consegue achar o erro:

      img1.Picture := nil;
      ExibeFoto(dmCadastro.cdsFoto, 'foto', img1);
      img1.Picture.SaveToFile('C:\Monit\bin\arqs\' +
        dmCadastro.cdsFotonome.Value + '.jpg');
      img1.Picture := nil;

Espero ter ajudado.
Fraterno abraço,
Carlos

Responder a