Image Processing Filters for Java
I did not see any Mavenized version of Jerry Huxtable’s Java Image Processing Classes.
This repo contains all classes as available via the download at:
To use the filters in your Maven project, add the following dependency to your pom.xml:
<dependency>
<groupId>com.hillert</groupId>
<artifactId>image-filters-4j</artifactId>
<version>1.0.0-M1</version>
</dependency>If you are using Gradle, add the following to your build.gradle:
implementation 'com.hillert:image-filters-4j:1.0.0-M1'Currently, snapshot releases are available via the following Maven repository:
<repository>
<id>snapshots-repo</id>
<url>https://central.sonatype.com/repository/maven-snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>To use snapshot versions, add the following dependency to your pom.xml:
<dependency>
<groupId>com.hillert</groupId>
<artifactId>image-filters-4j</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>For Gradle, add the following to your build.gradle:
implementation 'com.hillert:image-filters-4j:1.0.0-SNAPSHOT'final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
final String imageResourcePath = "images/image-filters-4j.png";
final BufferedImage originalBufferedImage;
try (InputStream inputStream = classLoader.getResourceAsStream(imageResourcePath)) {
if (inputStream == null) {
throw new IllegalStateException("Resource not found: " + imageResourcePath);
}
originalBufferedImage = ImageIO.read(inputStream);
}
catch (IOException ex) {
throw new IllegalStateException("Unable to read image at " + imageResourcePath, ex);
}
final BufferedImage grayscaleBufferedImage = new GrayscaleFilter().filter(originalBufferedImage, null);
final Path outputPath = Path.of("target", "image-filters-4j_output.png");
try {
Files.createDirectories(outputPath.getParent());
ImageIO.write(grayscaleBufferedImage, "png", outputPath.toFile());
}
catch (IOException ex) {
throw new IllegalStateException("Unable to write image to " + outputPath, ex);
}The following filters are included in this library:
| Filter | New |
|---|---|
ChannelMixFilter |
|
ContrastFilter |
|
CurvesFilter |
|
DiffusionFilter |
|
DitherFilter |
|
ExposureFilter |
|
GainFilter |
|
GammaFilter |
|
GrayFilter |
|
GrayscaleFilter |
|
HSBAdjustFilter |
|
InvertAlphaFilter |
|
InvertFilter |
|
LevelsFilter |
|
LookupFilter |
|
MapColorsFilter |
|
MaskFilter |
|
PosterizeFilter |
|
QuantizeFilter |
|
RescaleFilter |
|
RGBAdjustFilter |
|
SepiaFilter |
✅ |
SolarizeFilter |
|
ThresholdFilter |
|
TritoneFilter |
| Filter | New |
|---|---|
BicubicScaleFilter |
|
CircleFilter |
|
CropFilter |
|
DiffuseFilter |
|
DisplaceFilter |
|
DissolveFilter |
|
FieldWarpFilter |
|
FlipFilter |
|
KaleidoscopeFilter |
|
MarbleFilter |
|
MirrorFilter |
|
OffsetFilter |
|
PerspectiveFilter |
|
PinchFilter |
|
PolarFilter |
|
RippleFilter |
|
RotateFilter |
|
ScaleFilter |
|
ShearFilter |
|
SphereFilter |
|
SwimFilter |
|
TileImageFilter |
|
TwirlFilter |
|
WarpFilter |
|
WaterFilter |
| Filter | New |
|---|---|
BlockFilter |
|
BorderFilter |
|
ChromeFilter |
|
ColorHalftoneFilter |
|
CrystallizeFilter |
|
EmbossFilter |
|
FeedbackFilter |
|
HalftoneFilter |
|
LightFilter |
|
NoiseFilter |
|
PointillizeFilter |
|
ShadowFilter |
|
ShapeFilter |
|
StampFilter |
|
WeaveFilter |
| Filter | New |
|---|---|
BrushedMetalFilter |
|
CausticsFilter |
|
CellularFilter |
|
CheckFilter |
|
FBMFilter |
|
FillFilter |
|
FlareFilter |
|
FourColorFilter |
|
GradientFilter |
|
PlasmaFilter |
|
TextureFilter |
|
ScratchFilter |
|
SmearFilter |
|
SparkleFilter |
|
WoodFilter |
| Filter | New |
|---|---|
BlurFilter |
|
BoxBlurFilter |
|
BumpFilter |
|
ConvolveFilter |
|
DespeckleFilter |
|
GaussianFilter |
|
GlowFilter |
|
HighPassFilter |
|
LensBlurFilter |
|
MaximumFilter |
|
MedianFilter |
|
MinimumFilter |
|
MotionBlurFilter |
|
OilFilter |
|
RaysFilter |
|
ReduceNoiseFilter |
|
SharpenFilter |
|
SmartBlurFilter |
|
UnsharpFilter |
|
VariableBlurFilter |
MIT. See LICENSE.