Commit Graph

1113 Commits

Author SHA1 Message Date
Harald Kuhr
1dc6045079 Sonar issues 2026-03-11 19:08:53 +01:00
Harald Kuhr
b9b3c364be Added raster write test
+ fixed a small issue for PAM
2026-03-11 18:53:24 +01:00
Harald Kuhr
26ecf18c68 Mipmap support using ImageIO sequence API 2026-03-11 18:26:02 +01:00
Harald Kuhr
3f356a8197 More clean-up: Now keeps stream byte order consistent (LE), support for Raster, more tests 2026-03-11 15:59:48 +01:00
Harald Kuhr
dc59c66209 More clean-up: Removed optional flags from param, header size validation, metadata now reports compresion as lossy 2026-03-11 14:51:01 +01:00
Harald Kuhr
2a0b15f33f Sonar issues + roll back accidental check-in 2026-03-10 23:02:47 +01:00
Harald Kuhr
9ca9569537 Fix JavaDoc 🎉 2026-03-10 22:42:39 +01:00
Harald Kuhr
0a717ea0af Major rework/standardization:
* DDSEncoderType, DX10DXGIFormat merged with DDSType for a single way to describe a DDS format
 * Added constants for DXGI formats
 * DDSImageWriteParam is now mutable and supports standard way of setting compression type
 * DDSImageMetadata now supports more of the format
 Performance:
 * DDSReader now use seek() to jump to correct mipmap instead of reading all bytes
 * DDSImageWriter now uses getTile(0, 0) instead of getData() for better performance
2026-03-10 22:38:58 +01:00
Harald Kuhr
7f2eb517ef Refactorings and code clean-up 2026-03-05 21:02:04 +01:00
KhanhTypo
a7a4445ce8 [DDS] Adding Block Compression 1 -> 5 Encoding Support (#1237)
* dds dxt10 support, with some certain supported DXGI Formats only.
* expand the supporting range for some DX10 DXGI Format in the DXGI_FORMAT enumeration
* readability and maintainability fixes, adding DXT10 test cases.
* java.awt.* -> java.awt.Dimension
* DDS header & BC1 writer
* BC4 Writer
* BC3 Writer
* BC1-5 writer support
* remove unused methods
* code fixes
* BC4 fix to resolve unwanted blocky effect.
* CI test fixes
* change bitflag setter functions
* temporary disable formats that does not have an encoder yet.
* resolving SonaQube issues.
2026-03-04 10:35:40 +01:00
dependabot[bot]
0c05918d8a Bump junit.jupiter.version from 5.14.2 to 5.14.3
Bumps `junit.jupiter.version` from 5.14.2 to 5.14.3.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.14.2 to 5.14.3
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.2...r5.14.3)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.14.2 to 5.14.3
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.2...r5.14.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.14.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 10:26:02 +01:00
Harald Kuhr
5b4fa64dc0 [maven-release-plugin] prepare for next development iteration 2026-02-22 16:13:49 +01:00
Harald Kuhr
2ad522a9fa [maven-release-plugin] prepare release twelvemonkeys-3.13.1 2026-02-22 16:13:44 +01:00
Harald Kuhr
146d5926bb #1244: Created test + fixed inverted PSD hidden flag in metadata 2026-02-05 13:54:51 +01:00
Will Ezell
1b889b1b4b Fixes Lossless Alpha Channel WebP (#1243)
* Fix alpha channel dimensions in WebP lossless decoding

  Use the expected width and height values instead of tempRaster.getWidth()/getHeight() when creating the alpha channel's writable child raster. This ensures the alpha channel is correctly sized when the temp raster dimensions differ from the expected dimensions.

* Fixes Lossless Huffman table based on libwebp

* Remove redundant flush call in image reader test

Removed unnecessary image.flush() call in WebPImageReaderTest.

* adding code to generate good hash for reproducability
2026-01-23 09:40:06 +01:00
Harald Kuhr
cd79ef4409 #1240: Fixes TIFFWriter overwrite of nested values issue 2026-01-15 19:42:56 +01:00
dependabot[bot]
eb1735ab33 Bump junit.jupiter.version from 5.14.1 to 5.14.2
Bumps `junit.jupiter.version` from 5.14.1 to 5.14.2.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.14.1 to 5.14.2
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.2)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.14.1 to 5.14.2
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-14 11:25:14 +01:00
Harald Kuhr
b86d82720d [maven-release-plugin] prepare for next development iteration 2025-12-22 15:40:16 +01:00
Harald Kuhr
47e90a657a [maven-release-plugin] prepare release twelvemonkeys-3.13.0 2025-12-22 15:40:12 +01:00
Harald Kuhr
8d08c9565b Fix JavaDoc error 2025-12-22 10:08:43 +01:00
KhanhTypo
46a399ff02 DDS DXT10 support, with some certain supported DXGI Formats only. (#1230)
* dds dxt10 support, with some certain supported DXGI Formats only.
* expand the supporting range for some DX10 DXGI Format in the DXGI_FORMAT enumeration
* readability and maintainability fixes, adding DXT10 test cases.
* java.awt.* -> java.awt.Dimension
2025-12-17 17:38:47 +01:00
Vincent Privat
c9063ca02d add unit test 2025-12-09 13:25:26 +01:00
Vincent Privat
340e79eb8a fix webp decoding using source region without subsampling 2025-12-09 13:25:26 +01:00
Vincent Privat
355a916225 Optimize buffer by allocating enough space up front 2025-12-09 13:24:39 +01:00
Vincent Privat
8da45b5f05 take code review into account 2025-12-09 13:24:39 +01:00
Vincent Privat
6c8b0cdc2f Fix #1211 - SVG: support namespace prefix 2025-12-09 13:24:39 +01:00
dependabot[bot]
21e5a465b9 Bump commons-io:commons-io from 2.20.0 to 2.21.0
Bumps [commons-io:commons-io](https://github.com/apache/commons-io) from 2.20.0 to 2.21.0.
- [Changelog](https://github.com/apache/commons-io/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-io/compare/rel/commons-io-2.20.0...rel/commons-io-2.21.0)

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-version: 2.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 09:33:25 +01:00
dependabot[bot]
5011e98184 Bump junit.jupiter.version from 5.14.0 to 5.14.1
Bumps `junit.jupiter.version` from 5.14.0 to 5.14.1.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.14.0 to 5.14.1
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.0...r5.14.1)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.14.0 to 5.14.1
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.0...r5.14.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 09:25:22 +01:00
zcronix
1328dbf763 Handle lossless JPEG with non-zero point transform (#1183)
* Handle lossless JPEG with non-zero point transform (Pt parameter)
* Add unit test
* Inserting a fix for last pixel not being output
* Address issues from code review

---------

Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
2025-10-03 10:49:40 +02:00
Harald Kuhr
2d6f7d89fa JDK 25 seems to have added Exif thumbnail read support 2025-10-03 10:42:16 +02:00
dependabot[bot]
5b184a2a8a Bump junit.jupiter.version from 5.13.4 to 5.14.0
Bumps `junit.jupiter.version` from 5.13.4 to 5.14.0.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-02 09:13:48 +02:00
dependabot[bot]
488608b312 Bump junit.jupiter.version from 5.13.3 to 5.13.4
Bumps `junit.jupiter.version` from 5.13.3 to 5.13.4.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.13.3 to 5.13.4
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.3...r5.13.4)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.3 to 5.13.4
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.3...r5.13.4)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.13.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.13.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 15:58:37 +02:00
dependabot[bot]
b3ae8a8ba6 Bump commons-io:commons-io from 2.19.0 to 2.20.0
Bumps [commons-io:commons-io](https://github.com/apache/commons-io) from 2.19.0 to 2.20.0.
- [Changelog](https://github.com/apache/commons-io/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-io/compare/rel/commons-io-2.19.0...rel/commons-io-2.20.0)

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-version: 2.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 15:58:09 +02:00
dependabot[bot]
f653279c62 Bump junit.jupiter.version from 5.13.2 to 5.13.3
Bumps `junit.jupiter.version` from 5.13.2 to 5.13.3.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.13.2 to 5.13.3
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.2...r5.13.3)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.13.2 to 5.13.3
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.2...r5.13.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 12:38:09 +02:00
dependabot[bot]
133eafc8c2 Bump junit.jupiter.version from 5.13.1 to 5.13.2
Bumps `junit.jupiter.version` from 5.13.1 to 5.13.2.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.13.1 to 5.13.2
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.1 to 5.13.2
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.13.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 12:41:59 +02:00
Harald Kuhr
85346a82e1 Fix JavaDoc that breaks build... 2025-06-17 08:30:43 +02:00
Harald Kuhr
e718e58b65 #1152 Fix TIFF CCITT T.4/T.6 metadata compression names 2025-06-16 21:18:30 +02:00
dependabot[bot]
9abe154ed3 Bump junit.jupiter.version from 5.13.0 to 5.13.1
Bumps `junit.jupiter.version` from 5.13.0 to 5.13.1.

Updates `org.junit.jupiter:junit-jupiter-api` from 5.13.0 to 5.13.1
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.0 to 5.13.1
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-version: 5.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.13.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 14:49:17 +02:00
Harald Kuhr
867a46d281 Bump org.junit.jupiter:junit-jupiter-all from 5.12.2 to 5.13.0 (#1147) 2025-06-06 10:32:42 +02:00
Rolf Howarth
5af87372aa Use signed arithmetic when reading rectangle (#1131)
* Use signed arithmetic when reading rectangle

An operation such as DirectBitsRect can fail if the origin is -ve and we're applying a screen image ratio. See for example P564B1400.pict

* Fix copy/paste error in testNegativeOrigin()

---------

Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
2025-05-30 16:14:23 +02:00
Rolf Howarth
defadbbbcd Set 'frame' to correct image bounds (#1130)
Ensure the x,y offset for extended v2 pictures is respected by updating 'frame' to the correct bounding rectangle. As a result we
need to base output image directly on frame size rather than applying screen image ratio. See cow.pict.

Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
2025-05-30 16:07:16 +02:00
Rolf Howarth
66363f8d09 Fix bounds issue in some v2 PICT files (#1129)
x2 and y2 were swapped over, resulting in an "invalid bounds" exception with -ve height on some nonV2Ext images,
see for example CatDV==2.0=1=.pict or Picture14.pict

Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
2025-05-30 15:59:00 +02:00
Rolf Howarth
1bef35daba Fix rendering of images with JPEG slices (#1124)
* Third attempt

* Add test file

* Only suppress lastQTRect if PackBitsRect immediately follows CompressedQuickTime opcode

* Only suppress lastQTRect if PackBitsRect immediately follows CompressedQuickTime opcode

* Add unit test that checks pixel values

* Add missing ImageIO import

* Fix formatting issues

---------

Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
2025-05-30 15:51:06 +02:00
Harald Kuhr
0be5efc534 Add static import of Assumptions.assumeTrue 2025-05-30 15:50:02 +02:00
Rolf Howarth
35da57dfcf JUnit confusion about parameter order 2025-05-30 15:50:02 +02:00
Rolf Howarth
5d09bb664e Add assumption for TIFF reader being present as test will fail under jdk 1.8 2025-05-30 15:50:02 +02:00
Rolf Howarth
5590072cc7 Fix assertRGBEquals() failure message 2025-05-30 15:50:02 +02:00
Rolf Howarth
31117c7cea Add unit test for QuickTime mask issue 2025-05-30 15:50:02 +02:00
Rolf Howarth
ae0899fe76 Make sure maskSize bytes are skipped
If the CompressedQuickTime opcode has a mask then this wasn't processed properly. See for example P30946BDC.pict.
2025-05-30 15:50:02 +02:00
dependabot[bot]
a8f77a9a45 Bump batik.version from 1.18 to 1.19
Bumps `batik.version` from 1.18 to 1.19.

Updates `org.apache.xmlgraphics:batik-rasterizer-ext` from 1.18 to 1.19

Updates `org.apache.xmlgraphics:batik-extension` from 1.18 to 1.19

Updates `org.apache.xmlgraphics:batik-anim` from 1.18 to 1.19

Updates `org.apache.xmlgraphics:batik-svggen` from 1.18 to 1.19

Updates `org.apache.xmlgraphics:batik-transcoder` from 1.18 to 1.19

---
updated-dependencies:
- dependency-name: org.apache.xmlgraphics:batik-rasterizer-ext
  dependency-version: '1.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.xmlgraphics:batik-extension
  dependency-version: '1.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.xmlgraphics:batik-anim
  dependency-version: '1.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.xmlgraphics:batik-svggen
  dependency-version: '1.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.xmlgraphics:batik-transcoder
  dependency-version: '1.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 12:40:47 +02:00