DDSImageWriterSpi.java

package com.twelvemonkeys.imageio.plugins.dds;

import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase;

import javax.imageio.ImageTypeSpecifier;
import javax.imageio.ImageWriter;

import java.util.Locale;

public final class DDSImageWriterSpi extends ImageWriterSpiBase {
    public DDSImageWriterSpi() {
        super(new DDSProviderInfo());
    }

    @Override
    public boolean canEncodeImage(ImageTypeSpecifier type) {
        int numBands = type.getNumBands();
        if (numBands < 3 || numBands > 4) {
            return false;
        }

        return type.getSampleModel().getSampleSize(0) == 8;
    }

    @Override
    public ImageWriter createWriterInstance(Object extension) {
        return new DDSImageWriter(this);
    }

    @Override
    public String getDescription(Locale locale) {
        return "DirectDraw Surface (DDS) Image Writer";
    }
}