Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Crazy.sx en 29 Diciembre 2012, 07:35 am



Título: Error genérico en GDI+
Publicado por: Crazy.sx en 29 Diciembre 2012, 07:35 am
Estoy tratando de guardar una imagen en el Disco C:, pero me sale un error: Error genérico en GDI+. He intentado guardarlo en D: y ahí si que no tengo problemas.

Código
  1. PictureBox1.Image.Save("C:\CapturaPantalla.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

Se que es un tema de permisos pero, ¿hay alguna posibilidad que se guarde sin problemas en C:?

Quizás esto vaya en Windows


Título: Re: Error genérico en GDI+
Publicado por: spiritdead en 29 Diciembre 2012, 07:54 am
Estoy tratando de guardar una imagen en el Disco C:, pero me sale un error: Error genérico en GDI+. He intentado guardarlo en D: y ahí si que no tengo problemas.

Código
  1. PictureBox1.Image.Save("C:\CapturaPantalla.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

Se que es un tema de permisos pero, ¿hay alguna posibilidad que se guarde sin problemas en C:?

Quizás esto vaya en Windows

prueba
Código
  1. Public Sub salvarimagen(ByVal caja As PictureBox)
  2.        If caja.Image Is Nothing = False Then
  3.            Using salvador As New SaveFileDialog
  4.                salvador.InitialDirectory = Application.StartupPath & "\Imagenes\"
  5.                salvador.Filter = " BITMAP|*.bmp| JPEG|*.jpeg|JPG|*.jpg|GIF|*.gif|PNG|*.png"
  6.                salvador.Title = "guardar como"
  7.                If salvador.ShowDialog = DialogResult.OK Then
  8.                    If salvador.FileName.Substring(salvador.FileName.LastIndexOf("."c) + 1) = "bmp" Then
  9.                        caja.Image.Save(salvador.FileName, ImageFormat.Bmp)
  10.                    ElseIf salvador.FileName.Substring(salvador.FileName.LastIndexOf("."c) + 1) = "jpeg" Or salvador.FileName.Substring(salvador.FileName.LastIndexOf("."c) + 1) = "jpg" Then
  11.                        caja.Image.Save(salvador.FileName, ImageFormat.Jpeg)
  12.                    ElseIf salvador.FileName.Substring(salvador.FileName.LastIndexOf("."c) + 1) = "gif" Then
  13.                        caja.Image.Save(salvador.FileName, ImageFormat.Gif)
  14.                    ElseIf salvador.FileName.Substring(salvador.FileName.LastIndexOf("."c) + 1) = "png" Then
  15.                        caja.Image.Save(salvador.FileName, ImageFormat.Png)
  16.                    End If                  
  17.                    caja.Image = Nothing                  
  18.                Else                    
  19.                End If
  20.            End Using
  21.        Else        
  22.        End If
  23.    End Sub
  24.  


Título: Re: Error genérico en GDI+
Publicado por: _katze_ en 30 Diciembre 2012, 04:36 am
si quieres guardar en C:\ debes darle permisos a tu aplicacion, prueba con eso y nos comentas.!


Título: Re: Error genérico en GDI+
Publicado por: seba123neo en 30 Diciembre 2012, 05:48 am
como dijeron, es por permisos.

cuando tu aplicacion necesita grabar una imagen o crear archivos, se deben crear en el directorio que windows le brinda para hacer eso y ahi no hay problema de permisos, esa es la carpeta Application Data (AppData), ahi cada aplicacion guarda sus preferencias y archivos temporales.


Título: Re: Error genérico en GDI+
Publicado por: Crazy.sx en 30 Diciembre 2012, 06:03 am
Sí, entonces algo de razón tenía, eran los permisos.

si quieres guardar en C:\ debes darle permisos a tu aplicacion, prueba con eso y nos comentas.!

Dí los permisos a mi aplicación y pude grabar tranquilamente.

como dijeron, es por permisos.

cuando tu aplicacion necesita grabar una imagen o crear archivos, se deben crear en el directorio que windows le brinda para hacer eso y ahi no hay problema de permisos, esa es la carpeta Application Data (AppData), ahi cada aplicacion guarda sus preferencias y archivos temporales.

No sabía que AppData no daba problemas con el tema de permisos.

Otra, creé una carpeta manualmente en C:\ y también pude grabar en ella la imagen sin que me salga ningún error.   ;D

Muchas gracias a todos. ;)