Class DDSImageWriter
java.lang.Object
javax.imageio.ImageWriter
com.twelvemonkeys.imageio.ImageWriterBase
com.twelvemonkeys.imageio.plugins.dds.DDSImageWriter
- All Implemented Interfaces:
ImageTranscoder
ImageWriter implementation for Microsoft DirectDraw Surface (DDS) format.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longprivate Dimensionprivate final SequenceSupportprivate DDSTypeFields inherited from class ImageWriterBase
imageOutputFields inherited from class ImageWriter
availableLocales, locale, originatingProvider, output, progressListeners, warningListeners, warningLocales -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanconvertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param) voidprivate voidensureImageChannels(Raster data) Checking if the image has 3 channels (RGB) or 4 channels (RGBA) and if image has 8 bits/channel.private voidensureTextureDimension(Raster raster) Checking if an image can be evenly divided into blocks of 4x4, ideally a power of 2.getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param) private static Rasterstatic voidvoidprepareWriteSequence(IIOMetadata streamMetadata) protected voidprivate voidupdateHeader(int mipmapCount) voidwrite(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) private voidwriteDXT10Header(int dxgiFormat) private voidwriteFourCC(DDSType type, boolean writeDXT10) private voidwriteHeader(int width, int height, DDSType type, boolean writeDXT10) private voidwritePitchOrLinearSize(int height, int width, DDSType type) private voidwritePixelFormat(DDSType type, boolean writeDXT10) private voidwritePixelFormatFlags(DDSType type, boolean writeDXT10) private voidwriteRGBAData(DDSType type, boolean writeDXT10) voidwriteToSequence(IIOImage image, ImageWriteParam param) Methods inherited from class ImageWriterBase
assertOutput, convertStreamMetadata, dispose, fakeAOI, fakeSubsampling, getDefaultStreamMetadata, getFormatName, getSourceRegion, reset, setOutputMethods inherited from class ImageWriter
abort, abortRequested, addIIOWriteProgressListener, addIIOWriteWarningListener, canInsertEmpty, canInsertImage, canRemoveImage, canReplaceImageMetadata, canReplacePixels, canReplaceStreamMetadata, canWriteEmpty, clearAbortRequest, endInsertEmpty, endReplacePixels, endWriteEmpty, getAvailableLocales, getLocale, getNumThumbnailsSupported, getOriginatingProvider, getOutput, getPreferredThumbnailSizes, prepareInsertEmpty, prepareReplacePixels, prepareWriteEmpty, processImageComplete, processImageProgress, processImageStarted, processThumbnailComplete, processThumbnailProgress, processThumbnailStarted, processWarningOccurred, processWarningOccurred, processWriteAborted, removeAllIIOWriteProgressListeners, removeAllIIOWriteWarningListeners, removeIIOWriteProgressListener, removeIIOWriteWarningListener, removeImage, replaceImageMetadata, replacePixels, replacePixels, replaceStreamMetadata, setLocale, write, write, writeInsert
-
Field Details
-
mipmapSequence
-
headerStartPos
private long headerStartPos -
mipmapType
-
mipmapDimension
-
-
Constructor Details
-
DDSImageWriter
-
-
Method Details
-
getDefaultWriteParam
- Overrides:
getDefaultWriteParamin classImageWriter
-
resetMembers
protected void resetMembers()- Overrides:
resetMembersin classImageWriterBase
-
canWriteRasters
public boolean canWriteRasters()- Overrides:
canWriteRastersin classImageWriter
-
canWriteSequence
public boolean canWriteSequence()- Overrides:
canWriteSequencein classImageWriter
-
prepareWriteSequence
- Overrides:
prepareWriteSequencein classImageWriter- Throws:
IOException
-
endWriteSequence
- Overrides:
endWriteSequencein classImageWriter- Throws:
IOException
-
write
public void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException - Specified by:
writein classImageWriter- Throws:
IOException
-
writeToSequence
- Overrides:
writeToSequencein classImageWriter- Throws:
IOException
-
getRaster
- Throws:
IIOException
-
ensureImageChannels
Checking if the image has 3 channels (RGB) or 4 channels (RGBA) and if image has 8 bits/channel.- Throws:
IIOException- See Also:
-
ensureTextureDimension
Checking if an image can be evenly divided into blocks of 4x4, ideally a power of 2. e.g. 16x16, 32x32, 512x128, 512x512, 1024x512, 1024x1024, 2048x1024...- Throws:
IIOException
-
writeHeader
private void writeHeader(int width, int height, DDSType type, boolean writeDXT10) throws IOException - Throws:
IOException
-
updateHeader
- Throws:
IOException
-
writePixelFormat
- Throws:
IOException
-
writeDXT10Header
- Throws:
IOException
-
writeRGBAData
- Throws:
IOException
-
writeFourCC
- Throws:
IOException
-
writePixelFormatFlags
- Throws:
IOException
-
writePitchOrLinearSize
- Throws:
IOException
-
getDefaultImageMetadata
- Specified by:
getDefaultImageMetadatain classImageWriter
-
convertImageMetadata
public IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param) - Specified by:
convertImageMetadatain interfaceImageTranscoder- Specified by:
convertImageMetadatain classImageWriter
-
main
- Throws:
IOException
-