Преобразовать IplImage в SDL_Surface с помощью одного nChannals - PullRequest
0 голосов
/ 19 ноября 2018

Как конвертировать IpLImage в SDL_Surface.

Я использовал это post для преобразования изображения с 8 nChannels, и оно отлично работало, но когда я пытаюсь сделать это с изображением одного nChannel, на консоли отображается следующее сообщение:

 Depth 8, nChannels 1, pitch 640
 Unable to convert the IplImage image ! SDL Error: Unknown pixel format

И вот код, который я использовал:

int pitch = colored_capture->nChannels * colored_capture->width;
printf("Depth %d, nChannels %d, pitch %d\n", colored_capture->depth,
                colored_capture->nChannels, pitch);

surface_1 = SDL_CreateRGBSurfaceFrom((void*)colored_capture->imageData,
                       colored_capture->width,
                       colored_capture->height,
                       colored_capture->depth * colored_capture->nChannels,
                       colored_capture->widthStep,
                       0x0000ff, 0x00ff00, 0xff0000, 0);

if (surface_1 == NULL)
{
   fprintf ( stderr ,"Unable to convert the IplImage image ! SDL 
Error: %s \n", SDL_GetError());
}
...