Я пытаюсь создать файл avi для данного изображения JPG. Я читаю jpg с использованием библиотеки и готовлю hbitmap для нее. Наконец я добавляю его для создания файла avi. Но мой последний avi-файл содержит перевернутые изображения. Я сохранил негатив в высоту в bitmapheader. Тем не менее мой hbitmap перевернут. Подскажите, пожалуйста, почему ошибка
Здесь я даю код, который я реализовал
void makeVideo()
{
GoldImage Test ;
for(int i=0;i<10;i++)
{
Test.SetImage(m_MyImage[i])
HBITMAP hBitmap;
Test.GetBitMap(0,0,hBitmap);
if(i==0)
{
avi = CreateAvi("test.avi",1000,NULL);
AVICOMPRESSOPTIONS opts; ZeroMemory(&opts,sizeof(opts));
SetAviVideoCompression(avi,hBitmap,&opts,true,NULL);
}
AddAviFrame(avi,hBitmap);
}
CloseAvi();
}
void GoldImage::GetBitMap(HBITMAP &hBitmap)
{
BITMAPINFOHEADER bmi;
bmi.biSize = sizeof(BITMAPINFOHEADER);
bmi.biWidth = Width
**bmi.biHeight = (-1)*Height;**
bmi.biPlanes = 1;
bmi.biBitCount = 32;
**bmi.biCompression = BI_RGB;**
bmi.biSizeImage = 0;
bmi.biXPelsPerMeter = 0;
bmi.biYPelsPerMeter = 0;
bmi.biClrUsed = 0;
bmi.biClrImportant = 0;
RGBQUAD *prgbaDIB = 0;
hBitmap = CreateDIBSection ( NULL, (BITMAPINFO *)&bmi, DIB_RGB_COLORS, (void**)&prgbaDIB, NULL, 0 );
const unsigned int columns = m_Image.columns();
const unsigned int rows = m_Image.rows();
RGBQUAD *pDestPixel = prgbaDIB;
for( unsigned int row = 0 ; row < rows ; row++ )
{
const PixelPacket *pPixels = m_Image.getConstPixels(0,row,columns,1);
for( unsigned long nPixelCount = columns; nPixelCount ; nPixelCount-- )
{
pDestPixel->rgbRed = ScaleQuantumToChar(pPixels->red);
pDestPixel->rgbGreen = ScaleQuantumToChar(pPixels->green);
pDestPixel->rgbBlue = ScaleQuantumToChar(pPixels->blue);
pDestPixel->rgbReserved = 0;
++pDestPixel;
++pPixels;
}
}
}
Заранее спасибо