Domanda

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); 

// dopo CreateDIBSection Ho trovato il codice di errore 8, nessuna risorsa sufficiente.

Come posso evitare questo errore? Passo larghezza: 3500 altezza 2500 molte grazie!

È stato utile?

Soluzione

Penso che la risposta a questa sia la stessa della tua precedente domanda: le tue bitmap sono molto troppo grandi.

Inoltre, dal momento che le tue dimensioni sono ora la metà delle dimensioni della bitmap nella tua domanda precedente, immagino che stai cercando di dividere la destinazione in quadranti, ma ora non hai abbastanza risorse per persino creare il bitmap di destinazione. Ciò può significare che non stai rilasciando la memoria bitmap dai tuoi precedenti tentativi. Potresti voler riavviare e riprovare con molte immagini di destinazione più piccole.

Altri suggerimenti

Semplicemente non c'è abbastanza memoria per completare il tuo comando. Non puoi " correggere " così com'è, tranne per cercare di rompere alcuni limiti di memoria.

Piuttosto, devi dividere qualsiasi immagine su cui stai lavorando in dimensioni gestibili, in modo che possano essere scambiate dentro e fuori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top