Mvvmcross:缺少图片元数据

时间:2014-02-07 15:38:22

标签: mvvmcross

说明:我使用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);



问题:我的图片在重新缩放和保存时,或者准备上传时,是否可能会丢失元标记?

1 个答案:

答案 0 :(得分:1)

MvvmCross插件使用https://github.com/MvvmCross/MvvmCross/blob/v3.1/Plugins/Cirrious/PictureChooser/Cirrious.MvvmCross.Plugins.PictureChooser.Droid/MvxPictureChooserTask.cs

调整大小

此代码不会保留jpeg元数据 - 因此,如果这对您的应用程序很重要,那么您需要编写并注入自己的实现。