APNG Specification: Difference between revisions

Jump to navigation Jump to search
increased restriction for blend_op and dispose_op
m (make explicit that the boundaries of the animation are fixed to IHDR)
(increased restriction for blend_op and dispose_op)
Line 146: Line 146:


If `blend_op` is APNG_BLEND_OP_SOURCE all color components of the frame, including alpha, overwrite the current contents of the frame's output buffer region. If `blend_op` is APNG_BLEND_OP_OVER the frame should be composited onto the output buffer based on its alpha, using a simple OVER operation as described in the "Alpha Channel Processing" section of the PNG specification [PNG-1.2]. Note that Variation 2 of the sample code is applicable.
If `blend_op` is APNG_BLEND_OP_SOURCE all color components of the frame, including alpha, overwrite the current contents of the frame's output buffer region. If `blend_op` is APNG_BLEND_OP_OVER the frame should be composited onto the output buffer based on its alpha, using a simple OVER operation as described in the "Alpha Channel Processing" section of the PNG specification [PNG-1.2]. Note that Variation 2 of the sample code is applicable.
The first `fcTL` chunk has these restrictions:
* `blend_op` must be APNG_BLEND_OP_SOURCE
* `dispose_op` must not be APNG_DISPOSE_OP_PREVIOUS


The `fcTL` chunk corresponding to the default image has additional restrictions, if it exists:
The `fcTL` chunk corresponding to the default image has additional restrictions, if it exists:
* The `x_offset` and `y_offset` fields must be 0.
* The `x_offset` and `y_offset` fields must be 0.
* The `width` and `height` fields must equal the corresponding fields from the `IHDR` chunk.
* The `width` and `height` fields must equal the corresponding fields from the `IHDR` chunk.
* `blend_op` must be APNG_BLEND_OP_SOURCE
* `dispose_op` must not be APNG_DISPOSE_OP_PREVIOUS


As noted earlier, if a `fcTL` chunk does not precede `IDAT`, the default image is not part of the animation, and the output buffer must be completely initialized to fully transparent black at the beginning of each iteration.
As noted earlier, if a `fcTL` chunk does not precede `IDAT`, the default image is not part of the animation, and the output buffer must be completely initialized to fully transparent black at the beginning of each iteration.
48

edits

Navigation menu