我正在使用Datasnap将照片编码为base64,并将其发送到服务器,代码如下:
将图像转换为base64并以Json格式发送到服务器。
Memoria := TMemoryStream.Create;
Imagem.Picture.Bitmap.SaveToStream(Memoria);
Memoria.Position := 0;
StrEnv := TStringStream.Create;
TNetEncoding.Base64.Encode(Memoria, StrEnv);
StrEnv.Position := 0;
JOImagem := TJSONObject.Create;
JOImagem.AddPair('photo', StrEnv.DataString);
获取base64图像并将其保存为jpg图像。
lInStream := TStringStream.Create(JsonObj.GetValue('photo').Value);
lInStream.Position := 0;
lOutStream := TMemoryStream.Create;
TNetEncoding.Base64.Decode(lInStream, lOutStream);
lOutStream.Position := 0;
lOutStream.SaveToFile('photo-name' + '.jpg');
案例1。
如果我直接从网络摄像头拍摄照片,图像将成功保存。
案例2。
如果我从计算机上拍摄.png或.jpg照片(使用OpenPictureDialog)并保存它。它被保存了,但当我打开它时,它说:
我们不支持此文件格式。
它只是工作,如果我采取的照片使用网络摄像头,它不工作,如果我得到它从电脑。