Tengo este código

    private void saveImage()
    {
        Bitmap bmp1 = new Bitmap(pictureBox.Image);
        bmp1.Save("c:\t.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        //Dispose of the image files.
        bmp1.Dispose();
    }

ya tengo una imagen t.jpg en mi unidad «c:\».

yo quería reemplazarla con una nueva imagen cada vez que mi programa se ejecuta. pero de GDI+ de error se muestra

¿cómo podría solucionarlo?

InformationsquelleAutor Ozarraga_AB | 2012-01-18

2 Comentarios

  1. 35

    Debe quitar su imagen si es que ya existe.

    private void saveImage()
        {
            Bitmap bmp1 = new Bitmap(pictureBox.Image);
    
           if(System.IO.File.Exists("c:\t.jpg"))
                  System.IO.File.Delete("c:\t.jpg");
    
            bmp1.Save("c:\t.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            //Dispose of the image files.
            bmp1.Dispose();
        }
    • esto debería solucionar mi problema, pero un nuevo error en System.IO.File.Delete. se dice, el proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso
    • ¿Tiene usted alguna otra parte de código que están trabajando con ese archivo?
    • este img1 = new Bitmap(@"c:\\t.jpg", true);. este se ejecuta desde el inicio del programa
    • Se debe Disponer img1 antes de llamar a este método.
    • gran cantidad de luces que sucede en mi país, no es la mejor idea.
    • ¿Por qué deshacerse de la imagen? Usted necesita la imagen para volver a guardarlo en el sistema de archivos?

  2. 0
    private void saveImage(Image file, string filename){
        try
        {     
            if(Directory.Exists("filepath"+filename))
            {
                file.Dispose();
            }
            else
            {
                Directory.CreateDirectory("filepath"+filename);
                file.Save("filepath" + filename, Imageformat.Jpeg);
            }
        }   
        finally
        {
            file.Dispose();
        }           
    }

    Este trabajó para mí.

    • Esto no reemplaza el archivo existente! También, es la comprobación de/la creación de directorios en lugar de los archivos y la combinación de trazados se debe hacer uso de Path.Combine

Dejar respuesta

Please enter your comment!
Please enter your name here