imgFlux is a Java application that wraps graphicsmagick into a standalone multi-media processing engine. You can run it entirely inside Docker or install the native toolchain for bespoke builds.
imgFlux targets Linux and macOS. It also runs inside containers built from Debian- or Alpine-based images as long as graphicsmagick is available. Windows development is possible through WSL2.
If you are working from a fork, replace the URL accordingly. The repository uses Git submodules only for documentation assets, so a normal clone is sufficient.
imgFlux now ships both as an HTTP server and as a reusable Java crate. You can embed the processing engine directly into your application without starting the SpringBoot server:
@Autowired private ImageProcessingService imageProcessingService; // Download original image from storage byte[] originalImageData = objectStorageService.downloadFile(bucketName, imagePath); // If no processing parameters are specified, return original image directly if (width == 0 && height == 0 && quality == 80 && !extent && !trim && ("JPG".equalsIgnoreCase(format) || "JPEG".equalsIgnoreCase(format))) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.parseMediaType(getContentType(format))); headers.setContentLength(originalImageData.length); return new ResponseEntity<>(originalImageData, headers, HttpStatus.OK); } // Use image processing service to process image byte[] processedImageData = imageProcessingService.processImage( originalImageData, width, height, quality, extent, trim, format);
The same API exposes metadata retrieval through image_info and accepts authenticated, signed paths just like the HTTP interface. Server deployments continue to work unchanged.
Whether you chose Docker or a native build, proceed to Quick Start to configure secrets, start the server, and perform your first image transformation.