For this project will implement the basic functionality of a simple image editor (eg Microsoft Paint, Pinta, etc.). Specifically, the program will read your keyboard commands a series of image processing. Finally, the program will display the resulting image.
The image will be represented by a matrix of pixels, width * height size. A pixel is represented by 3 bytes (numbers with values between 0 and 255)
The channels are saved for each pixel in order of RGB (Red, Green, Blue).
On each line read from the keyboard will be composed of an operation code and corresponding parameters.
Initialization from an existing image:
1 2 3
0 0 255 0 255 0
255 0 0 128 0 128
255 255 255 0 0 0
// This call replaces the current image with a new image having three rows and two columns.
The pixel (0, 0) has the value rgb (0, 0, 255), therefore it is blue.
The pixel (0, 1) is set to rgb (0, 255, 0), therefore it is green, etc.
and after that when user input those number and enter it, it should continue for the operation like if the user input:
2 start_col start_line end_col end_line// Following the operation, the current image is overwritten with the image bounded by drepunghiul having the upper left corner coordinates (start_line, START_COL) and lower right corner coordinates (end_line, END_COL).
and when i will enter that operation and then print 8 it should crop my picture which in initialize in first.
and then it should wait for my anther command from user.
3 width height // Changes the current image size. If one dimension is larger, new lines and / or columns will be filled with white pixels. If the new dimensions are smaller, the call is equivalent to an instruction by crop type:
4 start_col start_line end_col end_line r g b
//Following the operation, the pixels in the upper left corner rectangle with coordinates (start_line, START_COL) and lower right corner coordinates (end_line, END_COL) will be overwritten with the pixel values r, g, b.
//Blur involves replacing each pixel with its neighbors arithmetic mean (Left, Right, Down, Up). The calculation will be performed separately for each color channel, and the result will be truncated to an integer. For pixels that are on the edge of the image, taking into account only the items in the image.
This operation is repeated num_iter times.
// Following the operation, the image will be rotated num_rot 90 degrees in clockwise.
7 start_col start_line r g b
// Following the operation, the pixel at position (start_line, START_COL) will be overwritten with the pixel value r, g, b. The operation will be repeated recursively for all its neighbors (left, right, up, down) that were the same color pixel original (start_line, START_COL).
If it has all the original pixel color (r, g, b) operation produces no effect.
// Following the operation, you will show the height and width stdout current image or the image itself. The image will be displayed in the same format as in step initialization.
//If receives instruction exit, the program stops successfully.
and for more detail i have post the instruction and you can talk to me about this as well