Nano Hash - криптовалюты, майнинг, программирование

Сохранение изображения как StorageFile

Я пытаюсь сохранить изображение, выбранное с помощью FileOpenPicker. Я обедаю это событие, когда изображение выбрано

 async void  photoChooserTask_Completed(object sender, PhotoResult e)
{       
// get the file stream and file name           
                Stream photoStream = e.ChosenPhoto;    
                string fileName = Path.GetFileName(e.OriginalFileName);

  // persist data into isolated storage      
    StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);    
    using (Stream current = await file.OpenStreamForWriteAsync())    
    {     
        await photoStream.CopyToAsync(current);         
    }      
}         

Но этот код, который даст мне длину сохраненного файла, возвращает 0

var properties = await file.GetBasicPropertiesAsync();
                i = properties.Size;

Я сделал что-то не так при сохранении изображения?


  • Установите флажок stackoverflow.com/questions/19886950/ это в основном то же самое. 20.05.2014
  • Видел, но не решил мою проблему 20.05.2014
  • Привет, ты ничего не делаешь, все работает нормально, я проверял. может быть проблема в другом или вы делаете ошибку при проверке. Пожалуйста, перепроверьте это. Поставьте точку останова на следующей строке i = properties.size. 20.05.2014
  • Обновите свой вопрос и добавьте параметр image.source code, сделайте его исходным... тогда это поможет другим людям. 20.05.2014

Ответы:


1

Возможно, вам придется очистить поток.

Если это не сработает, добавьте точку останова и проверьте длину двух потоков после копирования. Они равны? Они должны быть. Что-нибудь подозрительное в этих двух потоковых объектах?

Изменить

На изображении, которое вы разместили, я вижу, что вы используете метод SetSource BitmapImage с тем же потоком, который вы копируете. Как только вы это сделаете, позиция потока будет в конце, так как она была только что прочитана этим вызовом.

CopyToAsync копирует все после текущей позиции потока, для которого вы его вызываете. Поскольку позиция находится в конце, поскольку она была только что прочитана, CopyToAsync ничего не копирует.

Все, что вам нужно сделать, чтобы решить вашу проблему, это установить позицию потока на 0.

20.05.2014
  • Я решил это. Я удалил код для отображения фото на странице, и он работает. Спасибо за помощь 20.05.2014
  • О, кажется, я знаю, в чем была проблема. Я обновил свой ответ, проверьте его. 20.05.2014
  • Я думаю, что мой комментарий помог вам разобраться 20.05.2014
  • Это правда. Извините, что не упомянул об этом, это было сделано непреднамеренно. :) 20.05.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..