none
Erro ao salvar imagem RRS feed

  • Pergunta

  • Tenho um handler que cria e salva uma imagem.

    Ele funcionava local e também publicado no servidor, porém começou a dar um erro com a seguinte descrição "A generic error occurred in GDI+".

    Para salvar a imagem no response eu faço o seguinte:

    context.Response.ContentType = System.Net.Mime.MediaTypeNames.Image.Jpeg
    
    Dim bmp As Bitmap = New Bitmap(500, 80, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
    
    Dim g As Graphics = Graphics.FromImage(bmp)
    g.FillRectangle(Brushes.White, 0, 0, 500, 80)
    '...
    'Geração da imagem no graphics
    '...
    g.Save()
    
    bmp.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png)

    Alguém tem alguma idéia do porque do erro?

    Se existe algo que posso fazer para contorná-lo

    []'s


    Luís Fernando Vendrame

    sexta-feira, 1 de junho de 2012 15:02

Respostas

  • Resolvido

    Salvo em um MemoryStream antes e depois escrevo os bytes no stream final

    Exemplo:

    public void GenerateImage(System.IO.Stream stream)
    {
    
    	Bitmap bmp = new Bitmap(500, 80, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
    
    	Graphics g = Graphics.FromImage(bmp);
    
    	g.FillRectangle(Brushes.White, 0, 0, 500, 80);
    	g.Save();
    
    	byte[] buffer = null;
    	using (MemoryStream memStream = new MemoryStream()) {
    		bmp.Save(memStream, System.Drawing.Imaging.ImageFormat.Png);
    		buffer = memStream.ToArray();
    	}
    	stream.Write(buffer, 0, buffer.Length);
    }

    []'s


    Luís Fernando Vendrame

    quarta-feira, 6 de junho de 2012 17:07

Todas as Respostas