Перезапись задач (пересохранение) изображение, когда это было установлено как источник изображения

Значение:

new URL("http://www.yahoo.com").equals(new URL("http://209.191.93.52"))

true.

(От Трудных вопросов Java)

12
задан H.B. 16 January 2012 в 15:22
поделиться

3 ответа

Вы почти у цели.

  • Использование BitmapCacheOption.OnLoad было лучшим решением для предотвращения блокировки вашего файла.

  • Чтобы заставить его перечитывать файл каждый раз, когда вам также понадобится для добавления BitmapCreateOptions.IgnoreImageCache.

Добавление одной строки в ваш код должно сделать это:

  imgTemp.CreateOption = BitmapCreateOptions.IgnoreImageCache;

, что приведет к следующему коду:

  uriSource = new Uri(Combine(imagesDirectoryTemp, generatedFileName), UriKind.Absolute);
  imgTemp = new BitmapImage();
  imgTemp.BeginInit();
  imgTemp.CacheOption = BitmapCacheOption.OnLoad;
  imgTemp.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
  imgTemp.UriSource = uriSource;
  imgTemp.EndInit();
  imgAsset.Source = imgTemp;
39
ответ дан 2 December 2019 в 03:43
поделиться

Когда вы загружаете изображение в любой элемент управления WPF, он обрабатывает ваше изображение и не освобождает его, пока вы не закроете приложение. Причина этого ... Я не знаю точно, вероятно, это ретрансляция некоторого кода DirectX за сценой, который никогда не знает, когда приложение WPF выпустит изображение .. Используйте этот код для загрузки изображения ..

        MemoryStream mstream = new MemoryStream();
        System.Drawing.Bitmap bitmap = new Bitmap(imgName);
        bitmap.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);
        bitmap.Dispose(); // Releases the file.

        mstream.Position = 0;

        image.BeginInit();
        image.StreamSource = mstream;
        image.EndInit();
        this.img.Source = image ;   

у меня сработало ..

1
ответ дан 2 December 2019 в 03:43
поделиться

Похоже на проблему, которую я имел при разработке Intuipic , где WPF не удалял изображение, блокируя файл. Посмотрите этот преобразователь , который я написал для решения проблемы.

0
ответ дан 2 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: