Buona giornata tutto,Problemi di sovrascrittura (ri-salvataggio) dell'immagine quando era impostata come sorgente immagine
Ho problemi con i permessi delle immagini.
Sto caricando un'immagine da file, ridimensionandola e salvandola in un'altra cartella. sto quindi la visualizzazione di questo modo:
uriSource = new Uri(Combine(imagesDirectoryTemp, generatedFileName), UriKind.Absolute);
imgAsset.Source = new BitmapImage(uriSource);
Questo sta lavorando bene, il problema arriva se l'utente seleziona poi un'altra immagine subito dopo e cerca di salvare il file originale.
Un'eccezione viene generata al momento di salvare la mia immagine "ExternalException: A generic error occurred in GDI+."
Dopo un po 'di gioco in giro ho ridotto l'errore fino a imgAsset.Source = new BitmapImage(uriSource);
come la rimozione di questa linea e non l'impostazione del Imagesource mi permette di sovrascrivere il file più volte.
Ho anche provato a impostare la sorgente su qualcos'altro, prima di ri-risparmiare nella speranza che il vecchio riferimento sarebbe stato smaltito, questo non era il caso.
Come posso superare questo errore?
Grazie, Kohan
Modifica
Ora utilizzando questo codice non ricevo l'eccezione ma la fonte immagine non sta aggiornando. Inoltre dal momento che non sto usando un SourceStream, non sono sicuro di cosa ho bisogno di smaltire per farlo funzionare.
uriSource = new Uri(Combine(imagesDirectoryTemp, generatedFileName), UriKind.Absolute);
imgTemp = new BitmapImage();
imgTemp.BeginInit();
imgTemp.CacheOption = BitmapCacheOption.OnLoad;
imgTemp.UriSource = uriSource;
imgTemp.EndInit();
imgAsset.Source = imgTemp;
Perfetto, molte grazie per questo. – 4imble
imgTemp.CreateOption dovrebbe essere imgTemp.CreateOptions –