Conversion functions, Convert, and ConvertDirect, take two alignment parameters, one for the input buffer, and one for the output buffer.
Non-zero values for these parameters indicate that the input and output buffer's scanlines (rows of pixels) are padded with extra non-image bytes so that the total number of bytes in each scanline is a multiple of nInAlign (input buffer) or nOutAlign (output buffer).
For example, consider having a 3 column x 1 row CMY image buffer (9 bytes total) to be converted to RGB:
If the input buffer is not aligned and you need the output buffer to be aligned by 4 bytes (a memory need), call Convert or ConvertDirect with:
- nInAlign = 0
- nOutAlign = 4
C0 | M0 | Y0 | C1 | M1 | Y1 | C2 | M2 | Y2 |
(a) Input
R0 | G0 | B0 | R1 | G1 | B1 | R2 | G2 | B2 |
(b) Output
If the above 3 column x 1 row CMY input buffer is 4-bytes aligned (12 bytes total), and the output buffer is not to be aligned call Convert or ConvertDirect with:
- nInAlign = 4
- nOutAlign = 0
C0 | M0 | Y0 | C1 | M1 | Y1 | C2 | M2 | Y2 |
(a) Input
R0 | G0 | B0 | R1 | G1 | B1 | R2 | G2 | B2 |
(b) Output
If the above 3 column x 1 row CMY input buffer is 4-bytes aligned (12 bytes total), and the output buffer needs to be 4-bytes aligned, call Convert or ConvertDirect with:
- nInAlign = 4
- nOutAlign = 4
C0 | M0 | Y0 | C1 | M1 | Y1 | C2 | M2 | Y2 |
(a) Input
R0 | G0 | B0 | R1 | G1 | B1 | R2 | G2 | B2 |
(b) Output
Any other combination may be used for any supported color conversions. In any case the user should allocate enough memory for the actual pixels and the additional alignment bytes if any.
Topics
Programming With MediaWriter |