Image_Encryption_Compression is a project developed as part of an algorithms academic course.
This project focuses on implementing image encryption and compression algorithms using LFSR for encryption and Huffman coding for compression. It provides a platform for experimenting with these techniques to enhance image security and reduce file size.
Image encryption is the process of encoding an image in such a way that only authorized persons can access it. This is usually done by using a key (i.e., password). Anyone knowing this password can get the original image back, but another password won't work. For example, you could post an encrypted image on the web, but only friends who have the password (and your program) can see the original. Here, a simple algorithm called Linear Feedback Shift Register (LFSR) is used for this purpose.
Image compression is a type of data compression applied to digital images to reduce their cost for storage or transmission. One of the common data compression methods is Huffman Coding. Its basic idea is that instead of storing each colour channel as an 8-bit value, it stores the more frequently occurring colour values using fewer bits and less frequently occurring colour values using more bits.
For a detailed description of the project, you can refer to the Project Description Document.
To successfully launch the project, follow these steps:
-
Open the
.sln
file in your preferred IDE or text editor. -
Navigate to the
ImageOperations.cs
file and update all string variables with valid paths to ensure the project runs correctly without problems. -
Press
CTRL + F5
to run the project. This will compile and execute the application.
For testing the image encryption and compression algorithms, you can download sample test cases and complete test cases from the following links:
- Sample Test Cases: Download Sample Test Cases
- Complete Test Cases: Download Complete Test Cases
To test the identicality of the two images, you can use the following application:
- Image Comparison Application: Test Image Identicality
For an open-source implementation of a priority queue, you can refer to the following link: