Larry Gritz
ba4bb4920b
fix(softimage): support channel packets with differing bit depths ( #5309 )
...
A Softimage PIC file stores a chain of channel packets, each carrying
its own bit depth (8 or 16). The reader assumed one uniform per-channel
size for the whole image, so a file mixing depths (e.g. 16-bit R with
8-bit G) wrote past the end of the scanline buffer.
Fix: always expose one uniform pixel format, the widest depth among the
file's packets, and promote narrower channels to it on read via exact
bit replication (v*257 for 8->16), which preserves the normalized value
exactly. This keeps the pixel layout naturally aligned; representing
channels with their true differing formats instead would pack them at
non-uniform, sometimes misaligned byte offsets.
Assisted-by: Claude Code / claude-sonnet-5
Signed-off-by: Larry Gritz <lg@larrygritz.com >
2026-07-17 11:06:40 -07:00
..
2026-04-23 00:12:09 -07:00
2026-07-05 17:02:48 -07:00
2024-04-04 18:34:10 -07:00
2024-11-18 11:28:41 -08:00
2024-01-02 12:55:38 -08:00
2026-07-02 13:14:57 -07:00
2025-12-17 03:38:44 -08:00
2023-09-29 16:27:13 -07:00
2026-05-14 23:27:08 -07:00
2026-05-14 23:27:08 -07:00
2026-07-16 20:01:51 -07:00
2025-07-31 19:24:22 -07:00
2026-07-06 18:14:58 -07:00
2024-02-10 08:30:01 -08:00
2026-06-20 20:47:34 -07:00
2026-04-29 11:35:03 -07:00
2026-07-06 17:45:40 -07:00
2025-08-19 12:09:25 -07:00
2026-06-29 09:31:20 -07:00
2026-05-25 12:09:48 -07:00
2025-09-09 15:54:17 -07:00
2026-03-20 15:58:44 -07:00
2026-07-02 09:09:14 -07:00
2023-09-29 16:27:13 -07:00
2025-07-31 19:24:22 -07:00
2026-07-16 19:54:25 -07:00
2026-07-06 17:28:48 -07:00
2026-01-14 14:16:30 -08:00
2025-06-26 14:46:55 -07:00
2025-08-19 12:09:25 -07:00
2026-05-05 21:43:17 -07:00
2025-08-19 12:09:25 -07:00
2025-05-04 21:14:07 -07:00
2026-07-10 22:54:56 -07:00
2025-08-01 12:51:30 -07:00
2026-03-04 10:07:38 -08:00
2024-04-05 07:50:46 -07:00
2023-09-29 16:27:13 -07:00
2025-01-07 11:17:51 -08:00
2026-05-14 23:55:24 -07:00
2026-05-26 11:12:47 -07:00
2026-05-20 23:40:55 -07:00
2023-09-29 16:27:13 -07:00
2026-07-10 22:54:56 -07:00
2026-03-10 17:09:45 -07:00
2025-02-07 23:53:08 -08:00
2025-06-20 10:36:01 -07:00
2025-07-31 19:24:22 -07:00
2025-01-21 16:29:12 -08:00
2025-07-31 19:24:22 -07:00
2023-09-29 16:27:13 -07:00
2026-06-14 23:40:55 -07:00
2023-09-29 16:27:13 -07:00
2025-09-08 20:02:08 -07:00
2025-06-29 14:43:52 -07:00
2024-04-05 07:50:46 -07:00
2025-07-31 19:24:22 -07:00
2023-09-29 16:27:13 -07:00
2024-09-11 08:09:52 -07:00
2024-08-15 10:54:48 -07:00
2026-04-04 16:28:42 -07:00
2025-10-18 20:15:05 -07:00
2025-07-31 19:24:22 -07:00
2025-07-31 19:24:22 -07:00
2026-07-15 17:59:25 -07:00
2025-12-19 12:37:06 -08:00
2025-07-31 19:24:22 -07:00
2025-07-31 19:24:22 -07:00
2023-09-29 16:27:13 -07:00
2024-02-07 19:39:07 -08:00
2025-09-13 13:10:56 -07:00
2025-12-19 12:08:35 -08:00
2024-12-09 16:02:40 -08:00
2026-07-15 23:41:20 -07:00
2026-07-03 20:29:46 -07:00
2025-05-27 14:15:53 -07:00
2026-05-20 23:40:55 -07:00
2026-06-23 13:28:12 -07:00
2026-03-07 10:59:29 -08:00
2026-07-04 18:32:26 -07:00
2026-07-04 18:32:26 -07:00
2026-07-04 18:32:26 -07:00
2026-07-04 18:32:26 -07:00
2026-07-09 10:26:04 -07:00
2026-07-09 11:30:57 -07:00
2026-07-09 10:26:04 -07:00
2026-04-29 17:25:27 -07:00
2026-07-04 18:32:26 -07:00
2026-07-09 10:26:04 -07:00
2025-07-31 19:24:22 -07:00
2025-08-19 12:09:25 -07:00
2026-04-29 11:44:33 -07:00
2026-07-15 21:34:22 -07:00
2026-07-17 11:06:40 -07:00
2026-07-03 19:21:23 -07:00
2024-04-05 07:50:46 -07:00
2023-09-29 16:27:13 -07:00
2026-03-07 10:57:28 -08:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2026-02-01 12:33:10 -08:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-10-16 19:05:14 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2026-02-01 12:33:10 -08:00
2025-05-21 11:27:19 -07:00
2023-10-16 19:05:14 -07:00
2023-10-16 19:05:14 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-10-16 19:05:14 -07:00
2023-10-16 19:05:14 -07:00
2023-10-16 19:05:14 -07:00
2023-09-29 16:27:13 -07:00
2026-06-14 23:40:55 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2026-02-01 12:33:10 -08:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2026-06-14 23:40:55 -07:00
2026-06-14 23:40:55 -07:00
2026-02-01 12:33:10 -08:00
2023-10-16 19:05:14 -07:00
2023-09-29 16:27:13 -07:00
2023-09-29 16:27:13 -07:00
2026-02-21 14:06:32 -08:00
2026-07-04 15:57:32 -07:00
2026-03-04 10:07:38 -08:00
2026-05-04 21:52:27 -07:00
2025-04-13 22:16:59 -07:00
2026-03-07 13:23:02 -08:00
2023-10-16 19:05:14 -07:00
2026-06-29 09:31:20 -07:00
2024-09-18 22:11:23 -07:00