Cuando intento guardar un BitmapSource que cargué anteriormente, se emite un System.IO.IOException
indicando que otro proceso está accediendo a ese archivo y no se puede abrir el archivo.Cargue un BitmapSource y guárdelo usando el mismo nombre en WPF -> IOException
Si solo guardo sin cargar antes, todo funciona bien.
El código de carga:
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = uri;
if (decodePixelWidth > 0)
image.DecodePixelWidth = decodePixelWidth;
image.EndInit();
el código ahorro:
using (FileStream fileStream = new FileStream(Directory + "\\" + FileName + ".jpg", FileMode.Create))
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create((BitmapImage)image));
encoder.QualityLevel = 100;
encoder.Save(fileStream);
}
Parece que después de cargar los datos de la imagen, el archivo está siendo bloqueado una nunca puede ser sobrescrita mientras que la aplicación que abrió todavía está funcionando. ¿Alguna idea de como resolver esto? Muchas gracias por cualquier solución.
¿Tomó los comentarios de otros, no votó mejor que nadie, creó una solución derivada que publicó como respuesta, y se dio la votación de Respuesta aprobada por el Póster? – hughdbrown
Soy nuevo en stackoverflow. Como puedes ver Por lo tanto, no puedo retribuir a los demás hasta que tenga una reputación de 15. Y como los demás me proporcionaron amablemente buenas sugerencias, pero ninguna solución real para las personas que tienen el mismo problema, yo mismo proporcioné la respuesta como resultado de mi propia investigación. ¿Problema? – sdippl