En principio en tu código de PHP lo veo correcto, aunque con esa estructura de datos aparecen varias cuestiones que debes de solventar en la parte de DELPHI:
1.- Los datos los traes encapsulados en un objeto JSON, el cual debes primeramente poder leer.
Para este punto puedes utilizar un generador de classes de JSON a DELPHI, yo en particular para esta prueba he utilizado
https://jsontodelphi.com/, donde metes la estructura del JSON y te devuelve una unidad con la clase generada, haciendo prácticamente transparente el proceso de conversión de datos.
La estructura de JSON que parece que tienes es similar a esta:
Código:
{"imagenes":[
{"fecha":"2019-07-16 10:34:32","nregistro":"1","photo":"datos_imagen_1"},
{"fecha":"2019-07-16 10:34:32","nregistro":"2","photo":"datos_imagen_2"},
...
{"fecha":"2019-07-16 10:34:32","nregistro":"2","photo":"datos_imagen_n"}
]}
2.- Los datos de la imagen los traes codificados en BASE64 por lo que después de leerlos debes de descodificarlos. Aquí puedes utilizar las herramientas que proporciona DELPHI en particular en la unidad
System.NetEncoding
Y con este código deberías de poder leer las imágenes sin mayor problema
Código Delphi
[-]procedure LoadStringImageEncoded(Bitmap: TBitmap; const AImageData: string);
var
ImgStream: TStringStream;
img2: TMemoryStream;
begin
try
img2 := TMemoryStream.Create;
try
ImgStream := TStringStream.create(AImageData);
TNetEncoding.Base64.Decode(ImgStream, img2);
finally
ImgStream.free;
end;
DetectImage(img2, Bitmap);
finally
img2.free;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
url: string;
begin
url := 'http://localhost/clubdelphi/';
try
RootClass := TRootClass.FromJsonString(idhttp1.get(url));
if (Length(RootClass.imagenes) > 0) then
LoadStringImageEncoded(image1.Picture.Bitmap, RootClass.imagenes[0].photo);
finally
FreeAndNil(RootClass);
end;
end;