CR2 Decoder is a student project developed for the purposes of my Bachelor's thesis and also a bit due to general curiosity. The webpage and thesis were made in the period between early May and end of September 2020. The whole project is based on the small amount of information about CR2 that can be found on the internet, seeing as there is no official public documentation from Canon. Especially important was the work of Laurent Clévy in Inside the Canon RAW format version 2 which describe most of the structure and some of the operations needed for decoding. It isn't perfect and there both things that are missing and some errors in some of the details. That is why a lot of research and experimentation was necessary from my part in order to find the solutions to the problems. The project itself only uses pure JavaScript for the whole decoding and processing, but in order to make it run better the whole operations are done in a JS Worker. The software to create the images out of the JSON files was also made by me, just using Java in this case. Overall I am very happy with the results of the project but there are awlays things that can be improved. There are some plans to update it later as a side project but for proper evaluation of the whole project there are no foreseen update until I have been graded on it and have graduated. In case anyone is interested in working with this project or just has general questions about the CR2 format, I can be contacted using my email matijami13@gmail.com. I have quite a bit of knowledge about CR2 with which I can't really do much anymore so questions are always welcome :) . The source code of the decoder can be found on GitHub using this link CR2 Decoder.