> This resolves a gif parsing bug where an unwanted opaque rectangle could 
> appear under these conditions:
> 
> 1. The disposal method for frames is 1 (meaning "do not dispose", aka 
> "DISPOSAL_SAVE")
> 2. The transparent pixel is non-zero
> 3. There's more than one such consecutive frame
> 
> Previously: the GifImageDecoder would leave the saved_image pixels as zero 
> when they were supposed to be transparent. This works great if the 
> transparent pixel index is zero, but it flood fills the background of your 
> frame with the zeroeth color otherwise.
> 
> I wrote four PRs that share the GifComparison class in this PR. Once any of 
> them clear code review the other PRs will be much simpler:
> 
> 1. [8357034](https://github.com/openjdk/jdk/pull/25264)
> 2. [8356137](https://github.com/openjdk/jdk/pull/25044) (this one)
> 3. [8356320](https://github.com/openjdk/jdk/pull/25076)
> 4. [8351913](https://github.com/openjdk/jdk/pull/24271)

Jeremy Wood has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains 39 additional commits since the 
last revision:

 - 8354646: rewrapping line breaks so text is < 80 chars
   
   This is in response to:
   https://github.com/openjdk/jdk/pull/25044#issuecomment-3051978321
 - Merge branch 'master' into JDK-8356137
 - 8356137: adding copyright
 - 8356137: remove test file now that we use GifBuilder
 - 8356137: Use new GifBuilder for 8356137 test case
   
   This is in response to:
   https://github.com/openjdk/jdk/pull/25044#pullrequestreview-2871107750
 - 8356137: Adding GifBuilder to dynamically create test file
   
   This can be used by multiple gif tests in this directory.
   
   This is in response to:
   https://github.com/openjdk/jdk/pull/25044#pullrequestreview-2871107750
 - 8356137: trivial javadoc update
 - 8356137: only inspect last frame of gif
   
   This makes the main() method much less useful, so I removed it too. (I 
originally used this class to explore a folder of hundreds of gifs to look for 
discrepancies. But the discrepancies were rarely only on the last frame.)
   
   This is in response to:
   https://github.com/openjdk/jdk/pull/25044#discussion_r2109298270
 - 8356137: remove the redundant transparency check
   
   This is in response to:
   https://github.com/openjdk/jdk/pull/25044#discussion_r2109318427
 - 8356137: flood fill saved_image at initialization
   
   This is in response to:
   https://github.com/openjdk/jdk/pull/25044#issuecomment-2912699099
 - ... and 29 more: https://git.openjdk.org/jdk/compare/2c88ffdc...e143c8cf

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/25044/files
  - new: https://git.openjdk.org/jdk/pull/25044/files/392a9e5f..e143c8cf

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=25044&range=09
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25044&range=08-09

  Stats: 135422 lines in 2651 files changed: 81061 ins; 33367 del; 20994 mod
  Patch: https://git.openjdk.org/jdk/pull/25044.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25044/head:pull/25044

PR: https://git.openjdk.org/jdk/pull/25044

Reply via email to