Rene Leonhardt
dbfd8cda8a
craft-psd: less copying and compression work when encoding planes
...
- PackBits scans each row once; RLE planes encode their rows on worker
threads on native targets (rayon), keeping the exact packet boundaries
and the fallback when RLE does not pay.
- ZIP output grows in bounded blocks and is compacted to its encoded size,
instead of reserving the raw size; native threads reuse a finished
encoder's working buffers.
- 16/32-bit prediction works on owned buffers in one pass.
- Filter-effects planes and pattern blocks encode from borrowed rows and
owned buffers without the intermediate copies.
The encoded bytes are unchanged.
Ported from storytold/photocraft#7797 (its crates/psd part), at
a1ee8355a4651d379286cd13f92dabe4344e295f.
2026-11-12 01:17:11 +00:00
..
2026-11-11 18:52:44 -05:00
2026-11-11 19:01:12 -05:00
2026-11-11 17:42:11 -05:00
2026-11-11 18:08:00 -05:00
2026-11-11 19:25:58 -05:00
2026-11-11 20:07:11 -05:00
2026-11-11 12:49:55 -05:00
2026-11-11 19:19:03 -05:00
2026-11-11 18:07:00 -05:00
2026-11-07 15:48:07 +01:00
2026-11-02 21:52:51 -05:00
2026-11-11 18:38:46 -05:00
2026-11-11 19:22:03 -05:00
2026-11-11 20:03:30 -05:00
2026-11-03 05:56:54 -08:00
2026-11-11 18:39:42 -05:00
2026-11-11 20:07:35 -05:00
2026-11-11 19:46:19 -05:00
2026-11-11 19:47:07 -05:00
2026-11-11 19:48:05 -05:00
2026-11-11 20:05:20 -05:00
2026-11-11 19:20:26 -05:00
2026-11-07 01:58:39 -08:00
2026-11-11 15:47:59 -05:00
2026-11-11 17:07:37 -05:00
2026-11-11 17:29:14 -05:00
2026-11-11 18:53:16 -05:00
2026-11-11 18:41:32 -05:00
2026-11-11 15:22:02 -05:00
2026-11-11 18:54:48 -05:00
2026-11-11 06:17:52 -05:00
2026-11-11 19:30:23 -05:00
2026-11-11 19:49:28 -05:00
2026-11-11 19:45:03 -05:00
2026-11-11 07:37:06 -05:00
2026-11-11 17:46:14 -05:00
2026-11-11 19:48:05 -05:00
2026-11-11 18:47:08 -05:00
2026-11-11 19:47:35 -05:00
2026-11-11 19:46:48 -05:00
2026-11-03 23:06:04 -05:00
2026-11-11 18:40:11 -05:00
2026-11-11 19:22:42 -05:00
2026-11-11 15:26:10 -05:00
2026-11-11 16:41:11 -05:00
2026-11-11 18:45:10 -05:00
2026-11-11 19:48:05 -05:00
2026-11-11 18:43:46 -05:00
2026-11-11 19:48:05 -05:00
2026-11-11 19:48:05 -05:00
2026-11-07 15:44:13 +01:00
2026-11-11 20:04:13 -05:00
2026-11-11 19:30:55 -05:00
2026-11-11 19:48:05 -05:00
2026-11-11 16:12:06 -05:00
2026-11-11 17:29:14 -05:00
2026-11-11 18:55:20 -05:00
2026-11-11 15:48:26 -05:00
2026-11-11 19:19:57 -05:00
2026-11-04 18:11:37 +01:00
2026-11-12 01:17:11 +00:00
2026-11-11 18:43:21 -05:00
2026-11-11 18:37:51 -05:00
2026-11-11 19:29:51 -05:00
2026-11-11 19:25:27 -05:00
2026-11-02 22:48:25 -05:00
2026-11-11 19:24:39 -05:00
2026-11-11 06:40:49 -05:00
2026-11-11 19:48:05 -05:00
2026-11-11 19:24:06 -05:00
2026-11-11 18:46:38 -05:00
2026-11-11 16:40:42 -05:00
2026-11-11 19:19:30 -05:00
2026-11-11 18:39:14 -05:00
2026-11-11 19:43:41 -05:00
2026-11-11 19:44:17 -05:00
2026-11-11 07:31:25 +01:00
2026-11-11 11:22:26 -05:00
2026-11-11 18:50:38 -05:00
2026-11-07 15:43:45 +01:00
2026-11-11 16:23:23 -05:00
2026-11-11 17:43:10 -05:00
2026-11-06 16:54:07 +01:00
2026-11-05 10:29:52 +01:00
2026-11-11 19:42:34 -05:00
2026-11-11 19:43:08 -05:00
2026-11-11 19:25:01 -05:00
2026-11-11 19:48:50 -05:00
2026-11-11 19:32:04 -05:00
2026-11-11 14:58:15 -05:00
2026-11-11 18:44:44 -05:00
2026-11-11 19:48:05 -05:00