none
Erro Genérico GDI+ c# RRS feed

Respostas

  • abaixo desse comando:

    Bitmap bitmap = new Bitmap(ms);

    pictrurebox1.Image=bitmap;

    Mesmo assim... o codigo acima é só um template... a ideia é abrir o arquivo, extrair a imagem, fechar o arquivo. desta forma o arquivo nao fica preso.

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    quarta-feira, 9 de setembro de 2015 16:52
    Moderador

Todas as Respostas

  • Esse erro é bem conhecido e se deve ao fato da imagem estar "aberta" pelo seu software. Creio que a imagem que esta associada a fotofuncionario.image veio de um arquivo, certo?

    O meio de resolver isso é usar o stream, deste jeito:

    string outputFileName = "...";
    using (MemoryStream memory = new MemoryStream())
    {
        using (FileStream fs = new FileStream(outputFileName, FileMode.Create, FileAccess.ReadWrite))
        {
            thumbBMP.Save(memory, ImageFormat.Jpeg);
            byte[] bytes = memory.ToArray();
            fs.Write(bytes, 0, bytes.Length);
        }
    }

    fonte:http://stackoverflow.com/questions/15862810/a-generic-error-occured-in-gdi-in-bitmap-save-method

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Marcos SJ quarta-feira, 9 de setembro de 2015 14:22
    • Não Marcado como Resposta Xarp2 quarta-feira, 9 de setembro de 2015 16:38
    quarta-feira, 9 de setembro de 2015 13:24
    Moderador
  • Realmente e isso mesmo, imagem esta sendo usada

    mais mesmo assim ocorre o erro que a imagens esta sendo usada em outro processo


    Atenciosamente,
    José Henrique Sabino

    quarta-feira, 9 de setembro de 2015 13:38
  • Creio que voce esta tentando salvar em cima do arquivo original, certo? Neste caso voce vai ter que alterar a forma como voce abre a imagem. voce esta usando "imagem.load(path)"?

    A forma correta é assim:

    static void Main(string[] args)
        {
            MemoryStream ms = new MemoryStream();
            using(FileStream fs = new FileStream(@"c:\temp\tmp.jpg", FileMode.Open))
            {
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                ms.Write(buffer, 0, buffer.Length);
            }
    
            Bitmap bitmap = new Bitmap(ms);
    
            // do stuff
    
            bitmap.Save(@"c:\temp\tmp.jpg");
        }

    Note que no codigo acima o stream responsavel pela leitura esta dentro de um using, o que faz que uma vez lido o arquivo, os ponteiros que fazem referencia a esse arquivo serao liberados.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 9 de setembro de 2015 14:12
    Moderador
  • Encima desse comando que você postou William, onde coloco que o Picturebox vai receber a imagem ?

    static void Main(string[] args)
        {
            MemoryStream ms = new MemoryStream();
            using(FileStream fs = new FileStream(@"c:\temp\tmp.jpg", FileMode.Open))
            {
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                ms.Write(buffer, 0, buffer.Length);
            }
    
            Bitmap bitmap = new Bitmap(ms);
    
            // do stuff
    
            bitmap.Save(@"c:\temp\tmp.jpg");
        }
    O que informou esta correto estou usando o load para puxar a imagem


    Atenciosamente,
    José Henrique Sabino


    quarta-feira, 9 de setembro de 2015 16:38
  • abaixo desse comando:

    Bitmap bitmap = new Bitmap(ms);

    pictrurebox1.Image=bitmap;

    Mesmo assim... o codigo acima é só um template... a ideia é abrir o arquivo, extrair a imagem, fechar o arquivo. desta forma o arquivo nao fica preso.

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    quarta-feira, 9 de setembro de 2015 16:52
    Moderador