ParallelGifEncoder

actual constructor(sink: Sink, colorDifferenceTolerance: Double, quantizedColorDifferenceTolerance: Double, loopCount: Int, maxColors: Int, colorQuantizer: ColorQuantizer, colorSimilarityChecker: ColorSimilarityChecker, comment: String, transparentAlphaThreshold: Int, alphaFill: Int, cropTransparent: Boolean, minimumFrameDurationCentiseconds: Int, maxConcurrency: Int, coroutineScope: CoroutineScope, ioContext: CoroutineContext, onFrameWritten: suspend (framesWritten: Int, writtenDuration: Duration) -> Unit)(source)

Parameters

sink

The Sink to write the GIF data to.

colorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

The default value of 0 slightly reduces file size with no visual quality loss.

A value of around 0.01 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

quantizedColorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization after quantization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

A value of around 0.02 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

loopCount

The number of times the GIF should loop.

Set to 0 for infinite looping.

Set to -1 for no looping.

maxColors

The maximum number of colors in each frame.

Must be between 1 and 256 inclusive.

colorQuantizer

The ColorQuantizer to use for reducing the number of colors in each frame to maxColors.

colorSimilarityChecker

The ColorSimilarityChecker to use for determining if two frames are similar enough to merge.

comment

An optional comment to include in the GIF comment block metadata.

transparentAlphaThreshold

The alpha threshold for a pixel to be considered transparent. Pixels with an alpha value equal to or less than this value will be treated as fully transparent.

Must be between 0 and 255 inclusive.

alphaFill

The solid RGB color to use for filling in pixels with partial alpha transparency, as GIFs do not support partial transparency.

Set to -1 to disable filling.

cropTransparent

Whether to crop the transparent pixels from the edges of each frame. This can reduce the size of the GIF by a small amount.

minimumFrameDurationCentiseconds

The minimum duration for each frame in centiseconds. Setting this to a value less than 2 can result in the GIF being played slower than expected on some GIF viewers.

Must be positive.

maxConcurrency

The maximum number of frames that can be processed concurrently at the same time.

coroutineScope

The CoroutineScope in which the concurrent encoding operations will run.

ioContext

The CoroutineContext to use for writing to the sink.

onFrameWritten

A callback that is invoked after each frame is written, providing the number of frames written and the total duration of all the frames written so far. This can be used to track progress or update a UI.

actual constructor(sink: Sink, colorDifferenceTolerance: Double, quantizedColorDifferenceTolerance: Double, loopCount: Int, maxColors: Int, colorQuantizer: ColorQuantizer, colorSimilarityChecker: ColorSimilarityChecker, comment: String, transparentAlphaThreshold: Int, alphaFill: Int, cropTransparent: Boolean, minimumFrameDurationCentiseconds: Int, maxConcurrency: Int, coroutineScope: CoroutineScope, ioContext: CoroutineContext, onFrameWritten: suspend (framesWritten: Int, writtenDuration: Duration) -> Unit)(source)

Parameters

sink

The Sink to write the GIF data to.

colorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

The default value of 0 slightly reduces file size with no visual quality loss.

A value of around 0.01 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

quantizedColorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization after quantization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

A value of around 0.02 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

loopCount

The number of times the GIF should loop.

Set to 0 for infinite looping.

Set to -1 for no looping.

maxColors

The maximum number of colors in each frame.

Must be between 1 and 256 inclusive.

colorQuantizer

The ColorQuantizer to use for reducing the number of colors in each frame to maxColors.

colorSimilarityChecker

The ColorSimilarityChecker to use for determining if two frames are similar enough to merge.

comment

An optional comment to include in the GIF comment block metadata.

transparentAlphaThreshold

The alpha threshold for a pixel to be considered transparent. Pixels with an alpha value equal to or less than this value will be treated as fully transparent.

Must be between 0 and 255 inclusive.

alphaFill

The solid RGB color to use for filling in pixels with partial alpha transparency, as GIFs do not support partial transparency.

Set to -1 to disable filling.

cropTransparent

Whether to crop the transparent pixels from the edges of each frame. This can reduce the size of the GIF by a small amount.

minimumFrameDurationCentiseconds

The minimum duration for each frame in centiseconds. Setting this to a value less than 2 can result in the GIF being played slower than expected on some GIF viewers.

Must be positive.

maxConcurrency

The maximum number of frames that can be processed concurrently at the same time.

coroutineScope

The CoroutineScope in which the concurrent encoding operations will run.

ioContext

The CoroutineContext to use for writing to the sink.

onFrameWritten

A callback that is invoked after each frame is written, providing the number of frames written and the total duration of all the frames written so far. This can be used to track progress or update a UI.

actual constructor(sink: Sink, colorDifferenceTolerance: Double, quantizedColorDifferenceTolerance: Double, loopCount: Int, maxColors: Int, colorQuantizer: ColorQuantizer, colorSimilarityChecker: ColorSimilarityChecker, comment: String, transparentAlphaThreshold: Int, alphaFill: Int, cropTransparent: Boolean, minimumFrameDurationCentiseconds: Int, maxConcurrency: Int, coroutineScope: CoroutineScope, ioContext: CoroutineContext, onFrameWritten: suspend (framesWritten: Int, writtenDuration: Duration) -> Unit)(source)

Parameters

sink

The Sink to write the GIF data to.

colorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

The default value of 0 slightly reduces file size with no visual quality loss.

A value of around 0.01 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

quantizedColorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization after quantization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

A value of around 0.02 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

loopCount

The number of times the GIF should loop.

Set to 0 for infinite looping.

Set to -1 for no looping.

maxColors

The maximum number of colors in each frame.

Must be between 1 and 256 inclusive.

colorQuantizer

The ColorQuantizer to use for reducing the number of colors in each frame to maxColors.

colorSimilarityChecker

The ColorSimilarityChecker to use for determining if two frames are similar enough to merge.

comment

An optional comment to include in the GIF comment block metadata.

transparentAlphaThreshold

The alpha threshold for a pixel to be considered transparent. Pixels with an alpha value equal to or less than this value will be treated as fully transparent.

Must be between 0 and 255 inclusive.

alphaFill

The solid RGB color to use for filling in pixels with partial alpha transparency, as GIFs do not support partial transparency.

Set to -1 to disable filling.

cropTransparent

Whether to crop the transparent pixels from the edges of each frame. This can reduce the size of the GIF by a small amount.

minimumFrameDurationCentiseconds

The minimum duration for each frame in centiseconds. Setting this to a value less than 2 can result in the GIF being played slower than expected on some GIF viewers.

Must be positive.

maxConcurrency

The maximum number of frames that can be processed concurrently at the same time.

coroutineScope

The CoroutineScope in which the concurrent encoding operations will run.

ioContext

The CoroutineContext to use for writing to the sink.

onFrameWritten

A callback that is invoked after each frame is written, providing the number of frames written and the total duration of all the frames written so far. This can be used to track progress or update a UI.

expect constructor(sink: Sink, colorDifferenceTolerance: Double = 0.0, quantizedColorDifferenceTolerance: Double = -1.0, loopCount: Int = 0, maxColors: Int = GIF_MAX_COLORS, colorQuantizer: ColorQuantizer = ColorQuantizer.NEU_QUANT, colorSimilarityChecker: ColorSimilarityChecker = ColorSimilarityChecker.EUCLIDEAN_LUMINANCE_WEIGHTING, comment: String = "", transparentAlphaThreshold: Int = 20, alphaFill: Int = -1, cropTransparent: Boolean = true, minimumFrameDurationCentiseconds: Int = GIF_MINIMUM_FRAME_DURATION_CENTISECONDS, maxConcurrency: Int = 2, coroutineScope: CoroutineScope = CoroutineScope(EmptyCoroutineContext), ioContext: CoroutineContext = EmptyCoroutineContext, onFrameWritten: suspend (framesWritten: Int, writtenDuration: Duration) -> Unit = { _, _ -> })(source)

Parameters

sink

The Sink to write the GIF data to.

colorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

The default value of 0 slightly reduces file size with no visual quality loss.

A value of around 0.01 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

quantizedColorDifferenceTolerance

The tolerance for color difference used by colorSimilarityChecker when performing transparency optimization after quantization. This optimization works by making pixels that are similar to the pixel in the previous frame transparent, resulting in only pixels that are different being saved. Higher values will result in a smaller file size at the cost of visual artifacts. This optimization is most effective on animations with large static areas.

A value of around 0.02 provides a good tradeoff between file size and quality.

Set to -1 to disable transparency optimization.

loopCount

The number of times the GIF should loop.

Set to 0 for infinite looping.

Set to -1 for no looping.

maxColors

The maximum number of colors in each frame.

Must be between 1 and 256 inclusive.

colorQuantizer

The ColorQuantizer to use for reducing the number of colors in each frame to maxColors.

colorSimilarityChecker

The ColorSimilarityChecker to use for determining if two frames are similar enough to merge.

comment

An optional comment to include in the GIF comment block metadata.

transparentAlphaThreshold

The alpha threshold for a pixel to be considered transparent. Pixels with an alpha value equal to or less than this value will be treated as fully transparent.

Must be between 0 and 255 inclusive.

alphaFill

The solid RGB color to use for filling in pixels with partial alpha transparency, as GIFs do not support partial transparency.

Set to -1 to disable filling.

cropTransparent

Whether to crop the transparent pixels from the edges of each frame. This can reduce the size of the GIF by a small amount.

minimumFrameDurationCentiseconds

The minimum duration for each frame in centiseconds. Setting this to a value less than 2 can result in the GIF being played slower than expected on some GIF viewers.

Must be positive.

maxConcurrency

The maximum number of frames that can be processed concurrently at the same time.

coroutineScope

The CoroutineScope in which the concurrent encoding operations will run.

ioContext

The CoroutineContext to use for writing to the sink.

onFrameWritten

A callback that is invoked after each frame is written, providing the number of frames written and the total duration of all the frames written so far. This can be used to track progress or update a UI.