Fazer uma PerguntaFazer uma Pergunta
 

RespondidoDrawImage

  • terça-feira, 3 de novembro de 2009 22:40pati.rosa Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Olá!
    Como eu posso obter a imagem que foi colocada em um PictureBox utilizando o comando DrawImage?
    Utilizo um componente de terceiros e passo o handle do controle e o componente coloca a imagem no PictureBox mas a propriedade Image do PictureBox está nula mesmo quando uma imagem está sendo exibida, então eu concluí que eles estão utilizando o método DrawImage para exibir a imagem.

    Grata

    Pati

Respostas

  • quarta-feira, 4 de novembro de 2009 1:19Ari C. Raimundo Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Pati,

    Provavelmente esse componente está utilizando a mensagem WM_PAINT do controle. É possível utilizar o método DrawToBitmap do PictureBox para renderizar a imagem em um Bitmap.

    Ex:

    // cria Bitmap
    Bitmap bitmap = new Bitmap(seuPictureBox.Width, seuPictureBox.Height);

    // renderiza imagem do PictureBox no Bitmap
    seuPictureBox.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height);

    // salva arquivo Bitmap
    bitmap.Save("nomearq.jpg", ImageFormat.Jpeg);


    Obs: Não testei o código.

    Att.

    Ari C. Raimundo

Todas as Respostas

  • quarta-feira, 4 de novembro de 2009 1:19Ari C. Raimundo Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Pati,

    Provavelmente esse componente está utilizando a mensagem WM_PAINT do controle. É possível utilizar o método DrawToBitmap do PictureBox para renderizar a imagem em um Bitmap.

    Ex:

    // cria Bitmap
    Bitmap bitmap = new Bitmap(seuPictureBox.Width, seuPictureBox.Height);

    // renderiza imagem do PictureBox no Bitmap
    seuPictureBox.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height);

    // salva arquivo Bitmap
    bitmap.Save("nomearq.jpg", ImageFormat.Jpeg);


    Obs: Não testei o código.

    Att.

    Ari C. Raimundo