problema estranho sobre a conversão entre GDI + para GDI: Bitmap e HBitmap

votos
1

Eu quero converter GDI + Bitmap em GDI objeto HBitmap.

Eu estou usando o seguinte método:

   Bitmap* img = new Bitmap(XXX);
            // lots of codes...
    HBITMAP temp;
    Color color;
    img->GetHBITMAP(color, &temp);

o objeto img está desenhando em um diálogo. quando esta parte do método é chamado, algo estranho acontece! o img exibindo na janela mudou! Torna-se um pouco mais claro ou mais nítida. A minha pergunta é o que acontece?

Publicado 10/12/2008 em 03:25
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

O formato de pixel bitmap pode ser a razão. Você especificá-lo explicitamente no construtor Bitmap?

Gdiplus::Bitmap bmp(WIDTH, HEIGHT, PixelFormat24bppRGB);

Tente se certificar de que todos os formatos de pixel que você usa são o mesmo.

Outra razão pode ser as diferenças de Gdiplus::Graphicsmodos de interpolação em seu código. Esse atributo determina como as imagens são redimensionadas, como as linhas são desenhadas, etc.

m_pViewPortImage = new Gdiplus::Bitmap(
    observedWidth,
    observedHeight,
    PixelFormat24bppRGB
);

Gdiplus::Graphics gr(m_pViewPortImage);
gr.SetInterpolationMode(Gdiplus::InterpolationModeHighQualityBicubic);
Respondeu 19/03/2009 em 08:10
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more