Eden
- Image export
- Improved Save function
- Improved Save as function
- Improved File Opening function
- Improved File Exit function
- Colour Channel Cycling
- Error Handling (yes with funny messages)
- Adding Traditional Chinese (Taiwan) language support
- Created the icon
- Implemented multithreading for median filter
- Added two types of keyboard hotkeys for MacOS and Windows and their instructions
- Print Image
- ToolBar (and its icons)
- Theme Change for MacOS and Windows (big sorry for Linux)
- Implemented Selection Box with Emma
Kevin
- Enabled Multilingual support
- Image flip (Horizontal and Vertical)
- Median filter
- Image rotation - polishing
- Image invert (Worked with Yuxing)
- Added Bahasa Indonesia as language option
- Added a Help option and an About Us.
- Testing and debugging
- Added progress bar to random scattering
- Random Scattering
- Added the Brightness and Contrast feature
- Added temperature modification for images
- Added HSV modification feature
- Added Sepia filter
- Added a colour chooser
- Added icons to menus
- Added themes
- Made preview panels for major image operations
- Fixed Javadocs pipeline
Yuxing
- Image resize
- Image invert
- Image scaling
- Block averaging
- Drawing functions
- Macros
Emma
- Sharpen filter
- Soft blur filter
- Black image border issue fix
- Creating Readme.md
- Testing whole project during runtime for bugs
- Created Issues.txt
- Encapsulation of code to pad border of images - FilterBorder.java
- Extended filters
- Mouse Selection
- Crop to Selection
Angus
- Guassian blur filter
- Image rotation
- Testing
- User instuctions read me
- Filters with negative results
- Emboss Filter with edge detection
- Sobel Filter
- Continuous Integration
The majority of our testing was done via a brute force method. After each feature was complete we thought of all the scenarios that could occur when a user used said feature and checked for any errors or unexpected outcomes. Once we were completely featured complete, we moved into testing all the different combinations of features available. This allowed us to uncover issues that could occur, particularly with feature that in practice would be commonly used together. The bulk of our last round of testing was done as an entire group, we booked out a study room for a day and all rigorously tested, trying our best to break our program. This uncovered quite a few errors we had not originally caught, we then noted them all down under the "issues" tab in our Git Lab repository.
Throughout the entirety of our development we had a good system or reporting bugs found in testing. Each time a new bug was found, whoever uncovered it would add it as an "issue" in our Git Lab repository. This way we could all see the complete list of bugs we needed to fix and discuss in the comments on how we planned to fix them. This kept all of our team in the loop and ensured no known bug accidentally got forgotten about.
- The language support for JColourChooser cannot be implimented. This would be quite tedious and convoulted to fix
- UI is not as harmonious as we would like it to be
- In our menu bar we have implimented icons for main operations, however not every feature has an icon
- There is an error that appears for the preview panel for some of the filters intermittently. It does not appear often enough to debug effectively.
- When the median filter is applied, the outer ring of pixels is effected adversely. As it does not use a convolution, the same method we applied to the other filters to fix this doesn't work. (fixed)
- For the remaining filters, when applied, the image will lose its outer ring of pixels each time they are applied. (fixed)
- When the user opens the dialog to open a different file but then cancels, the selection function will break. (fixed)
- When user is prompted to enter a value for an action, if they exit out of the pop-up, the action will still be performed with the default value. (fixed)
-
Java Development Kit (JDK): You'll need a recent version of the JDK installed on your system. Download and install it from the official Oracle website: https://www.oracle.com/nz/java/technologies/downloads/. Verify the installation by opening a terminal and running java -version.
-
Gradle: Version 8.6
-
FlatLaf: Version 3.2 (https://mavenlibs.com/maven/dependency/com.formdev/flatlaf)
🔧Installation🔧
- Clone or Download the Project: Obtain the project files using your preferred method (Git clone or direct download).
🏃Running the program🏃
- Open Terminal and navigate to project directory
- Run
gradle build
- Run
gradle run
- To open files, go to file > open
1. Click on ‘File’ in the menu bar
2. Select ‘Open’
3. Browse to the image file you want to edit and click ‘Open’
1. Click on ‘File’ in the menu bar
2. Select ‘Save As’
3. Choose the location and format for the image and click ‘save’
1. Click on ‘File’ in the menu bar
2. Select ‘Save’
3. A popup will confirm that the .ops file has saved successfully
1. Click on ‘Edit’ in the menu bar
2. Select ‘Change Theme’
3. Select which theme you wish to use from the drop down menu and click ‘Ok’
4. Then restart the application for the new theme to take effect
1. Click, within the image area, where you would like to start the selection
2. Drag the mouse until you have the desired selection size
3. Release the mouse to confirm selection
1. Make a selection (see above)
2. Click on ‘Image’ in the menu bar
3. Select ‘Crop’
1. Click on ‘Drawing’ in the menu bar
2. Select your desired shape to draw
3. Select a colour swatch from the colour chooser, then click ‘Ok’
Menus | Actions | Windows | macOS | Windows & macOS | Alternative |
---|---|---|---|---|---|
File | Open | Ctrl + O | ⌘ O | F - O | |
Save | Ctrl + S | ⌘ S | F - S | ||
Save As | Ctrl + Shift + S | ⇧⌘ S | F - A | ||
Export | Ctrl + E | ⌘ E | F - E | ||
Ctrl + P | ⌘ P | F - P | |||
Set Language | F - L | ||||
Exit (Q) | Ctrl + Q | ⌘ Q | F - Q | Alt + F4 (Windows) | |
Edit | Undo | Ctrl + Z | ⌘ Z | E - U | |
Redo | Ctrl + Y | ⌘ Y | E - R | Ctrl/Cmd + Shift + Y (Win/Mac) | |
Change Theme | E - C | ||||
View | Zoom in | Ctrl + "+" | ⌘ + | V - I | |
Zoom out | Ctrl + "-" | ⌘ - | V - O | ||
Zoom full | Ctrl + 0 | ⌘ 0 | V - F | Ctrl/Cmd + 1 (Win/Mac) | |
Image | Flip Horizontal | I - H | |||
Flip Vertical | I - V | ||||
Crop | |||||
Rotate | I - R | ||||
Resize | Ctrl + Alt + I | ⌥ ⇧ ⌘ I | I - E | ||
Scaling | I - S - 1/2/3/4/5 | ||||
Rotate By | I - O - 1/2/3 | ||||
Filter | Mean Filter | L - M | |||
Soft Blur | L - S | ||||
Sharpen Filter | L - H | ||||
Gaussian Filter | L - G | ||||
Median Filter | L - D | ||||
Emboss Filter | L - E | ||||
Sobel Filter | L - O | ||||
Random Scattering | L - A | ||||
Block Averaging | L - B | ||||
Colour | Greyscale | C - G | |||
Invert Colour | Ctrl + I | ⌘ I | C - I | ||
Colour Channel Cycling | C - C | ||||
Brightness and Contrast | C - B | ||||
Sepia Filter | C - S | ||||
Temperature | C - T | ||||
HSV | C - H | ||||
Macro | Start | M - S | |||
Stop | M - T | ||||
Apply | M - A | ||||
Drawing | Oval | D - O | |||
Rectangle | D - R | ||||
Line | D - L | ||||
Help | About us | H - A | |||
Hotkey Instructions | Alt + Shift + Ctrl + K | ⌥ ⇧ ⌘ K | H - H | F1 |
- Multithreading has been implimented
- Multithreading
- Print Function
- HSV Editor
- Temperature Editor
- Sepia Filter
%% CodeCrafters' Gantt Chart for our work on ANDIE
%%{init: {'theme':'forest'}}%%
gantt
title CodeCrafters' work on ANDIE
dateFormat DD-MM-YYYY
Start of project: milestone, m1,05-03-2024,
First deliverable: milestone, m2, 28-03-2024,
Second deliverable: milestone, m3, 22-05-2024,
section Developing
Colour Channel Cycling :done, des1, 08-03-2024, 3d
Image Opening :done, des2, 14-03-2024, 19-03-2024
File Saving :done, des3, 14-03-2024, 19-03-2024
File Save As :done, des4, 14-03-2024, 19-03-2024
File Export :done, des5, 17-03-2024, 19-03-2024
Multilingual support :done, des6, 14-03-2024, 19-05-2024
Help Action :done, des7, 06-03-2024, 07-03-2024
Image flip :done, des8, 16-03-2024, 17-03-2024
Median filter :done, des9, 13-03-2024, 15-03-2024
Gaussian Filter :done, des10, 08-03-2024, 09-03-2024
Image Rotation :done, des11, 16-03-2024, 17-03-2024
Sharpen Filter :done, des12, 10-03-2024, 11-03-2024
Soft Blur Filter :done, des13, 11-03-2024, 12-03-2024
README :done, des14, 26-03-2024, 28-03-2024
Multithreading :active, des15, 30-03-2024, 31-03-2024
Progress Bar :active, des16, 30-03-2024, 01-04-2024
Extended Filters (Convolution filters) :done, des17, 09-04-2024, 18-04-2024
Extended Filters (Median Filter) :done, des18, 19-04-2024, 23-04-2024
Selection Tool :active, des19, 16-03-2024, 18-03-2024
Selection Tool :active, des20, 23-04-2024, 30-04-2024
Print Image :done, des21, 23-04-2024, 25-04-2024
Crop to Selection :done, des22, 06-05-2024, 08-05-2024
Crop to Selection :done, des23, 14-05-2024, 17-05-2024
Random Scattering :done, des24, 04-04-2024, 05-04-2024
HSV :done, des25, 02-05-2024, 03-05-2024
Brightness and Contrast :done, des26, 22-04-2024, 28-04-2024
Temperature :done, des27, 01-05-2024, 02-05-2024
Colour Chooser :done, des28, 03-05-2024, 04-05-2024
UI Tweaks :active, des29, 26-04-2024, 20-05-2024
section Debugging
Image Opening :done , dbg1, 22-03-2024, 23-03-2024
Image Opening :done , dbg2, 27-03-2024, 28-03-2024
General Testing :done, dbg3, 27-03-2024, 28-03-2024
File Export :done, dbg4, 27-03-2024, 28-03-2024
File Saving :done, dbg5, 27-03-2024, 28-03-2024
File Save As :done, dbg6, 22-03-2024, 27-03-2024
Multilingual support :done, dbg7, 26-03-2024, 27-03-2024
Handling Merge Conflict :done, dbg8, 10-03-2024, 11-03-2024
Handling Merge Conflict :done, dbg9, 12-03-2024, 13-03-2024
Handling Merge Conflict :done, dbg10, 15-03-2024, 16-03-2024
Handling Merge Conflict :done, dbg11, 26-03-2024, 27-03-2024
Filter Border Fix :done, dbg12, 13-03-2024, 18-03-2024
Bulk Brute-force Testing :done, dbg13, 18-05-2024, 19-05-2024