19,468
社区成员
发帖
与我相关
我的任务
分享
while(cinfo.output_scanline < cinfo.output_height)
{
row_pointer[0]=&pRGB[cinfo.output_scanline*cinfo.image_width*cinfo.num_components];
jpeg_read_scanlines(&cinfo, row_pointer, 1);
//RGB 转化为BGR
for (int i = 0; i < nWidth * cinfo.num_components; i += cinfo.num_components)
{
unsigned char temp = row_pointer[0][i + 2];
row_pointer[0][i + 2] = row_pointer[0][i]; //RED
row_pointer[0][i] = temp; //BLUE
}
}
int imageWidth,imageHeight,imageBitCount;
BYTE *pSrcData;//原始未对齐的数据
BYTE *pDestData;//对齐后的数据
...
int nLine,nScanLine;
PBYTE pSrc;
PBYTE pDest;
nLine = imageWidth * imageBitCount / 8;
nScanLine = (nLine %4)?(nLine + 4 - (nLine %4)):nLine;
pDestData = (BYTE*)malloc(nScanLine * imageHeight);
memset(pDest,0,(nScanLine * imageHeight));
pSrc = pSrcData;
pDest = pDestData;
for(int i=0;i<imageHeight;i++)
{
memcpy(pDestData,pSrcData,nLine);
pSrcData += nLine;
pDestData += nScanLine;
}