说明:我使用Mvvmcross TakePicture方法将图像上传到使用手机应用拍摄的服务器。
问题:手机图库中的原始尺寸图像包含GPS标记,但重新调整后的图像不会到达服务器。
信息:我已经从网页上传了一张图片来测试服务器端代码,GPS标签就在那里。
这是我正在拍照并保存的代码:
_pictureChooserTask.TakePicture(MaxPixelDimension,DefaultJpegQuality,OnPicture,()=>{});
private void OnPicture(Stream stream)
{
var memorystream = new MemoryStream();
stream.CopyToAsync(memorystream);
PictureBytes = memorystream.ToArray();
_fileStore.EnsureFolderExists("Images");
var path = _fileStore.PathCombine("Images", "test.jpg");
_fileStore.WriteFile(path, PictureBytes);
}
这是上传部分:
var result = Mvx.Resolve<IMvxFileStore>().TryReadBinaryFile(imagePath, out imageBytes);
var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(imageBytes,0,imageBytes.Count());
var fileName = mediaPartner.GpCode+Guid.NewGuid() + ".jpg";
const string reference = "picture";
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
FileName = fileName,
Name = reference,
};
content.Add(fileContent);
content.Add(new StringContent(Settings.UserId), "userid");
var backendresp = await client.PostAsync(server + route, content);
问题:我的图片在重新缩放和保存时,或者准备上传时,是否可能会丢失元标记?
答案 0 :(得分:1)
此代码不会保留jpeg元数据 - 因此,如果这对您的应用程序很重要,那么您需要编写并注入自己的实现。