ImageLab is a framework that allows students to develop image modification processors (filters) and to experience the results visually and aurally.
- The imagelab and sound packages may be provided in an
imagelab.jarfile. - The
imagelab.jarfile also includes the class Run with apublic static void mainmethod in the unnamed package, used to facilitate running the ImageLab application. - The repository contents may also be used directly as a BlueJ project.
- 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 project is set up to use gradle wrapper to create the jar file.
- Change the working directory to be the project's root directory.
- Execute the command
./gradlew buildA. This will build/rebuild the jar file and required dependencies. - The new jar file will be named "imagelab.jar" and located in the project's root directory.
More information on gradle can be found here and more information on the gradle wrapper can be found here.
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.javato compile the Run.java file. - Execute the command
javac */*.javato compile/recompile the files in packages imagelab, sound, and filters. - In the root directory execute the command
echo Main-Class: Run > MANIFEST.MFto 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.
- Change the working directory to be the one that contains the imagelab.jar file.
- Make sure the filters directory is in the same directory as the imagelab.jar file and that it contains at least one filter.
- If the filter source code is not yet compiled, issue the command
javac -cp .:imagelab.jar filters/*.java - Run the ImageLab application using the command
java -cp ".:imagelab.jar" Run
(Note that on Windows platforms, the ":" character in the classpath must be changed to the ";" character.)
- Install Gradle
- Gradle is the tool used in this repository for automation of the build. Please visit https://gradle.org/ for specific installation instructions.
To build the project from a copy of the repository use the command:
./gradlew build
- Display the full list of tasks that can be excecuted
./gradlew tasks --all
- Run the program
./gradlew run
- Compile the main java source
./gradlew compileJava
- Delete the build directory
./gradlew clean
- Assemble the main classes
./gradlew classes
- Assemble and test the project
./gradlew build
- Assemble the test classes
./gradlew testClasses
- Generate checkstyle reports
./gradlew checkstyle
- Run unit tests
./gradlew test
- Compile unit tests
./gradlew compileTestJava
- Run all checks
./gradlew check
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/
Project Website: https://metrocs.github.io/imagelab/