- have team leader fork this repository
- have team leader add team members as collaborators to the team fork
- team members should clone team fork
- write all of your code in a directory name
bitmap-
+<team name>
e.g.bitmap-shredders
- submit a pull request to this repository when done :)
- each person will submit a link to your to your PR in canvas
- each person will write up about what work they did on the project
- each person write a question and observation on canvas
For this assignment you will be building a Bitmap reader and transformer. It will read a Bitmap in from disk, run one or more color transforms on the bitmap and then write it out to a new file. This project will require the use of node buffers in order to manipulate binary data. Your project should include a package.json file, eslintrc, README.md, and a .gitignore. Make sure to run all your code through eslint. The process will look something like this:
- open file using fs and read it into a buffer
- convert buffer headers data into a Javascript Object (using constructors)
- Run a transform on the buffer directly
- Write the buffer to a new file.
The wikipedia article found here Bitmap Specification describes the byte specification of a "windows bitmap file." We'll be working the simplest version, meaning no compression.
- Your project should have three transforms
- Invert the colors (essentially subtract every color value from the max color value which is 255),
- Grayscale the colors - Google it.
- (red|green|blue)scale the colors, same as above but only multiply one of the colors.
- Can handle palette and non-palette bitmaps
- Can handle multiple types of bitmaps (not just BM)
- Handle LE and BE computers with a single if statement
- create a command line interface
- command line interface that can select the transform
- can handle various sized bitmaps
- Tests: 3pts // freebee
- Package.json 2pts
- Read Bitmap Meta Data 5pts
- Successfully Apply Transform 5pts
- Project Design 5pts