Skip to content

End‐to‐End Example Flow

TamKungZ_ edited this page Mar 5, 2026 · 1 revision

This is a practical sequence used by many applications:

  1. probe input
  2. convert to required format
  3. validate output in strict mode
  4. writeMetadata sidecar
  5. readMetadata and confirm entries
import java.nio.file.Path;
import java.util.Map;

import me.tamkungz.codecmedia.CodecMedia;
import me.tamkungz.codecmedia.CodecMediaEngine;
import me.tamkungz.codecmedia.model.Metadata;
import me.tamkungz.codecmedia.options.ConversionOptions;
import me.tamkungz.codecmedia.options.ValidationOptions;

public class EndToEndSample {
    public static void main(String[] args) throws Exception {
        CodecMediaEngine engine = CodecMedia.createDefault();

        Path input = Path.of("src/test/resources/png_test.png");
        Path output = Path.of("target/example-output.jpg");

        var probe = engine.probe(input);
        System.out.println("Probe: " + probe.mimeType() + " / " + probe.mediaType());

        var converted = engine.convert(input, output, new ConversionOptions("jpg", "balanced", true));
        System.out.println("Converted: " + converted.outputFile());

        var validation = engine.validate(output, new ValidationOptions(true, 64L * 1024L * 1024L));
        System.out.println("Valid: " + validation.valid());

        engine.writeMetadata(output, new Metadata(Map.of("title", "Example", "author", "CodecMedia")));
        var metadata = engine.readMetadata(output);
        System.out.println("Metadata: " + metadata.entries());
    }
}

Clone this wiki locally