Frage

BITMAPINFO bmi;
memset(&bmi,0,sizeof(BITMAPINFO));
bmi.bmiHeader.biSize            = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth           =m_pImg->GetWidth();
bmi.bmiHeader.biHeight          =m_pImg->GetHeight();
bmi.bmiHeader.biPlanes          = 1;
//if(   m_pImg->GetInfo()->biBitCount!=16)  
//{
//  bmi.bmiHeader.biBitCount    =   m_pImg->GetInfo()->biBitCount;
//}
//else 
//{
//ASSERT((m_pImg->GetInfo())->bmiHeader->biBitCount == 24);
bmi.bmiHeader.biBitCount=24;
bmi.bmiHeader.biCompression     = BI_RGB;
if (bmi.bmiHeader.biSizeImage == 0)
    bmi.bmiHeader.biSizeImage =
    WidthBytes(bmi.bmiHeader.biWidth,bmi.bmiHeader.biBitCount) * bmi.bmiHeader.biHeight;
if(bmi.bmiHeader.biClrUsed == 0 && bmi.bmiHeader.biBitCount <16)
    bmi.bmiHeader.biClrUsed=DWORD(1 <<bmi.bmiHeader.biBitCount);
m_nNewSize=bmi.bmiHeader.biSizeImage;

if(m_hbmCanvasBitmap!=NULL)
{
    DeleteObject(m_hbmCanvasBitmap);
    m_hbmCanvasBitmap=NULL;
    m_pCanvasBits=NULL;
}
//  创建直接与DC相关联的位图
m_hbmCanvasBitmap=CreateDIBSection(m_hDC, &bmi, DIB_RGB_COLORS,(void**)&m_pCanvasBits, NULL, NULL); 

// nach CreateDIBSection Ich fand den Fehlercode 8, nicht genügend Ressourcen.

Wie kann ich diesen Fehler vermeiden? Ich gehe Breite: Höhe 2500 3500 vielen Dank!

War es hilfreich?

Lösung

Ich denke, die Antwort ist die gleiche wie die Antwort auf Ihre frühere Frage:. Ihre Bitmaps sind Weg zu groß

Da auch Ihre Dimensionen Hälfte sind nun die Abmessungen der Bitmap in Ihrer früheren Frage, ich vermute, Sie versuchen, das Ziel bis in Quadranten zu brechen, aber jetzt haben Sie nicht genug Ressourcen, um auch die schaffen Ziel-Bitmap. Dies kann bedeuten, dass Sie auch die Bitmap-Speicher von Ihrem bisherigen Versuche nicht freigeben. Sie können all dies wieder mit viel kleinere Zielbilder neu gestartet und versuchen.

Andere Tipps

Es gibt einfach nicht genug Speicher Ihren Befehl zu vervollständigen. Sie können nicht „reparieren“ es wie es ist, mit Ausnahme einiger Speichergrenze, um zu versuchen und zu brechen.

Vielmehr müssen Sie spalten was Bild Ihrer Arbeit an in überschaubare Größen, so können sie in und ausgelagert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top