void image_copy_deinterleave()

in imageops.c [8:22]


void image_copy_deinterleave(ImageObject* self, unsigned char* output_buffer) {
    unsigned char* channel_buffers[3] = {
        output_buffer,
        output_buffer + self->height * self->width,
        output_buffer + 2 * self->height * self->width
    };
    IppiSize roi = { self->width, self->height };
    IppStatus ipp_status = ippiCopy_8u_C3P3R(
        self->buffer + (self->y_offset * self->row_stride + self->x_offset) * self->channels,
        self->row_stride * self->channels,
        channel_buffers, self->width, roi);
    if (ipp_status != ippStsNoErr) {
        PyErr_Format(PyExc_SystemError, "ippiCopy_8u_C3P3R failed with status %d", ipp_status);
    }
}