ImageLab is a framework that allows students to develop image modification processors (filters) and to experience the results visually and aurally.
Project Website & User Instructions: https://metrocs.github.io/imagelab/
- The imagelab and sound packages are provided in an
imagelab.jar
file. - The
imagelab.jar
file also includes the class Run with apublic static void main
method in the unnamed package, used to facilitate running the ImageLab application. - The filter package is generally provided as a folder with source (
.java
) and compiled (.class
) files, with the source versions serving as examples for students to create their own filters. - A sample set of images are provided in an "images" directory.
The Apache Ant tool is used for build automation. Please see https://ant.apache.org for installation and usage instructions.
The project is set up to use Apache Ant to create the jar file.
- Change the working directory to the project's root directory.
- Execute the command
ant jar
- The new jar file will be named "ImageLab_yyyymmdd_hhmm.jar" and located in the project's build/jar directory.
If there is no automated build environment set up, the jar file can be created using the jar
command.
- Change the working directory to be the project's root directory.
- Execute the command
javac Run.java
to compile the Run.java file. - Execute the command
javac */*.java
to compile/recompile the files in packages imagelab, sound, and filters. - In the root directory execute the command
echo Main-Class: Run > MANIFEST.MF
to create the manifest file for the jar. - Create the jar using the command
jar cfm imagelab.jar MANIFEST.MF *.class sound/*.class imagelab/*.class
- The new jar file will be named "imagelab.jar" and located in the project's root directory.
More information on creating the jar can be found here and more information about java commands can be found here.
An executable jar file can also be created within most IDEs.
To build the project from a copy of the repository use the command:
ant all
To display the full list of targets use the command:
ant -p
Please note that this project is released with a contributor Code of Conduct. By participating in this project you agree to abide by its terms.
- Review the Project Board to verify that the issue does not already appear as a project task.
- Search the Issues to determine related issues (epics, dependencies, not yet triaged, ...).
- Create a new issue using the "New Issue" button on the Issues page.
- Choose an appropriate issue template (e.g., "Bug report", "User Story").
- Change the title of the issue.
- Modify the body of the issue in accordance with the template.
Here is the basic GitHub workflow for this project:
- Identify an active issue from the "To do" column in the Project Board
- Fork the repository.
- Create a feature branch in your fork.
- Follow the Agile Principles outlined for the project (i.e., working, incremental, behavior-driven, test-dreiven).
- Include supporting documentation as appropriate.
- Before initiating a pull request (PR):
- Verify quality, including adherence to Conventions and Technogies.
- Build, run, and test a distribution build.
- Submit a pull request (PR) from your branch.
- One or more reviewers will review the request and may make comments in the PR conversation.
- Participate in the conversation associated with the PR, updating your branch as appropriate.
- After reviewer approval, someone with commit access will merge the PR.
Please refer to the Project Board
This project uses Discussions for project-related announcements, questions and answers, ideas, and engaging in all discussions not related to a specific project Issue or Pull Request.
- Development Conventions
- Programming Language - Java
- Unit Testing - JUnit5
- Code Conventions - Checkstyle
- Code Weakness Identification - PMD
- Issue Tracking - GitHub
- Work In Progess - GitHub Project Board
- Version Control - Git
- Build Process - Apache Ant & Command Line
- Under Consideration
- Test Coverage - JaCoCo
- Code Complexity Analysis - JaCoCo
- Continuous Integration - Travis CI
- Code Coverage - OpenClover
- Accessibility - AccessLint
- Development Conventions
- Code of Conduct
- Project Board (Approved Issues & Work In Progress)
ImageLab is a framework for student exploration of image processing.
Copyright (C) 2016,2019 by Aaron Gordon & Jody Paul
The software comes with ABSOLUTELY NO WARRANTY.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/