2014-02-07 4 views
1

ОПИСАНИЕ: Я загружаю изображения на сервер, сделанный с помощью мобильного приложения, используя метод Mvvmcross TakePicture.

ПРОБЛЕМА: Исходный размер изображения в Галерее телефона содержит теги GPS, но повторное масштабирование, поступающее на сервер, отсутствует.Mvvmcross: недостающие метаданные изображения

INFO: Я загрузил изображение с веб-страницы, чтобы протестировать код на стороне сервера, и там был тег 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); 



QUES TION: Возможно ли, что мое изображение потеряет метатеги, когда оно будет повторно масштабировано и сохранено или когда оно будет подготовлено для загрузки?

ответ

1

Плагин MvvmCross изменяет размеры с помощью https://github.com/MvvmCross/MvvmCross/blob/v3.1/Plugins/Cirrious/PictureChooser/Cirrious.MvvmCross.Plugins.PictureChooser.Droid/MvxPictureChooserTask.cs

Этот код не будет сохранять в формате JPEG метаданных - так что, если это важно для вашего приложения, то вам нужно написать и внедрить свою собственную реализацию.

Смежные вопросы