Skip to content

MetroCS/imagelab

Repository files navigation

ImageLab

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/


Table of Contents

Repository Contents

  • The imagelab and sound packages are provided in an imagelab.jar file.
  • The imagelab.jar file also includes the class Run with a public 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.

Build Instructions

Build System Requirements

The Apache Ant tool is used for build automation. Please see https://ant.apache.org for installation and usage instructions.

Creating an executable jar file

Apache Ant Automated Build

The project is set up to use Apache Ant to create the jar file.

  1. Change the working directory to the project's root directory.
  2. Execute the command ant jar
  3. The new jar file will be named "ImageLab_yyyymmdd_hhmm.jar" and located in the project's build/jar directory.

Command Line Manual Build

If there is no automated build environment set up, the jar file can be created using the jar command.

  1. Change the working directory to be the project's root directory.
  2. Execute the command javac Run.java to compile the Run.java file.
  3. Execute the command javac */*.java to compile/recompile the files in packages imagelab, sound, and filters.
  4. In the root directory execute the command echo Main-Class: Run > MANIFEST.MF to create the manifest file for the jar.
  5. Create the jar using the command jar cfm imagelab.jar MANIFEST.MF *.class sound/*.class imagelab/*.class
  6. 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.

IDE Build

An executable jar file can also be created within most IDEs.

Using Ant

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

Contributing to the ImageLab Project

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.

Creating New Issues

  • 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.

Making Changes

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):
  • 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.

Project Workflow

Please refer to the Project Board

Project Discussions

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.

Conventions and Technologies

Contributor Links

License

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.

GPL license logo 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/