This function stores an arbitrary line of pixels in the DIB image bitmap of the image referenced by HIGEAR.
Copy Code
|
|
---|---|
AT_ERRCOUNT ACCUAPI IG_DIB_line_set (
HIGEAR hIGear,
AT_PIXPOS nX1,
AT_PIXPOS nY1,
AT_PIXPOS nX2,
AT_PIXPOS nY2,
const LPAT_PIXEL lpPixel,
AT_DIMENSION nNumPixels
);
|
Name | Type | Description |
---|---|---|
hIGear | HIGEAR | HIGEAR handle of image to which to transfer pixels. |
nX1 | AT_PIXPOS | X coordinate of the first endpoint of line to store. |
nY1 | AT_PIXPOS | Y coordinate of the first endpoint. |
nX2 | AT_PIXPOS | X coordinate of the second endpoint of line to store. |
nY2 | AT_PIXPOS | Y coordinate of the second endpoint. |
lpPixel | const LPAT_PIXEL | Far pointer to your data area containing the pixels to be stored. |
nNumPixels | AT_DIMENSION | Number of pixels (not bytes) to be transferred. |
Returns the number of ImageGear errors that occurred during this function call. If there are no errors, the return value is IGE_SUCCESS.
All pixel formats supported by ImageGear for C and C++.
Copy Code
|
|
---|---|
HIGEAR hIGear; /* HIGEAR handle of image */ AT_PIXEL cPixArray[400]; /* Receives the returned pixels */ AT_PIXPOS nXleft, nYtop, /* Coordinates of upper-left end of line*/ nXright, nYbot; /* Coordinates of the lower-right end */ AT_DIMENSION nFetched; /* Holds the count of pixels retrieved */ AT_ERRCOUNT nErrcount; /* Receives the returned error counts */ /* Fetch a diagonal line, from Coordinates (0,0) to (100,100): */ nXleft = 0; nYtop = 0; /* Diagonal line from upper left corner */ nXright = 100; nYbot = 100; nErrcount = IG_DIB_line_get ( hIGear, nXleft, nYtop, nXright, nYbot, &cPixArray[0], 400, &nFetched ); ... /* Now restore the line: */ nErrcount = IG_DIB_line_set ( hIGear, nXleft, nYtop, nXright, nYbot, &cPixArray[0], nFetched ); |
The line does not have to be horizontal or vertical. (nX1,nY1) are the coordinates of one endpoint of the line and (nX2,nY2) are of the other.
If the image you are modifying is 1-bit, you must convert the image from run-end encoded to a standard DIB before you can set pixel values. Please see the section Accessing Image Pixels for details.
1-bit and 4-bit pixels should be provided one to a byte, right justified (that is, in the least significant bits of the byte). 24 bit pixels should be 3 bytes per pixel, in Blue-Green-Red order.
To calculate the number of pixels that your line will consist of, use the following formula:
max((1+abs(x2-x1)), (1+abs(y2-y1)))