| author | |
| committer | |
| log | 4960c06d9ae353c4c2379730578d6105b3e8da4d |
| tree | ce3db5a56e66dc196c9b8b2e1e1bde4d3bb72828 |
| parent | b5d8955327de829054dd337a86eed6fc6582be62 |
| signature | Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU |
"s: fire" and "m: winter" stopped the app at launch: their pictures are GIFs, which
OneNote keeps as inserted and the image decoder was built without.
Assisted-by: claude-opus-5.53 files changed, 33 insertions(+), 1 deletions(-)
Cargo.lock+24| ... | ... | @@ -501,6 +501,12 @@ dependencies = [ |
| 501 | 501 | "unicode-width", |
| 502 | 502 | ] |
| 503 | 503 | |
| 504 | [[package]] | |
| 505 | name = "color_quant" | |
| 506 | version = "1.1.0" | |
| 507 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
| 508 | checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" | |
| 509 | ||
| 504 | 510 | [[package]] |
| 505 | 511 | name = "combine" |
| 506 | 512 | version = "4.6.8" |
| ... | ... | @@ -912,6 +918,16 @@ dependencies = [ |
| 912 | 918 | "polyval", |
| 913 | 919 | ] |
| 914 | 920 | |
| 921 | [[package]] | |
| 922 | name = "gif" | |
| 923 | version = "0.14.2" | |
| 924 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
| 925 | checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" | |
| 926 | dependencies = [ | |
| 927 | "color_quant", | |
| 928 | "weezl", | |
| 929 | ] | |
| 930 | ||
| 915 | 931 | [[package]] |
| 916 | 932 | name = "gl_generator" |
| 917 | 933 | version = "0.14.0" |
| ... | ... | @@ -1172,6 +1188,8 @@ checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" |
| 1172 | 1188 | dependencies = [ |
| 1173 | 1189 | "bytemuck", |
| 1174 | 1190 | "byteorder-lite", |
| 1191 | "color_quant", | |
| 1192 | "gif", | |
| 1175 | 1193 | "moxcms", |
| 1176 | 1194 | "num-traits", |
| 1177 | 1195 | "png", |
| ... | ... | @@ -3160,6 +3178,12 @@ dependencies = [ |
| 3160 | 3178 | "wasm-bindgen", |
| 3161 | 3179 | ] |
| 3162 | 3180 | |
| 3181 | [[package]] | |
| 3182 | name = "weezl" | |
| 3183 | version = "0.1.12" | |
| 3184 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
| 3185 | checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" | |
| 3186 | ||
| 3163 | 3187 | [[package]] |
| 3164 | 3188 | name = "wgpu" |
| 3165 | 3189 | version = "30.0.1" |
crates/canvas/Cargo.toml+1-1| ... | ... | @@ -17,7 +17,7 @@ skrifa = "0.44.0" |
| 17 | 17 | bytemuck = { version = "1.25", features = ["derive"], optional = true } |
| 18 | 18 | swash = { version = "0.2.10", optional = true } |
| 19 | 19 | wgpu = { workspace = true, optional = true } |
| 20 | image = { version = "0.25", default-features = false, features = ["png", "jpeg"], optional = true } | |
| 20 | image = { version = "0.25", default-features = false, features = ["gif", "jpeg", "png"], optional = true } | |
| 21 | 21 | roxmltree = { version = "0.21", optional = true } |
| 22 | 22 | |
| 23 | 23 | [[bin]] |
crates/canvas/src/gpu/mod.rs+8| ... | ... | @@ -1051,6 +1051,14 @@ mod tests { |
| 1051 | 1051 | assert_eq!(decoded.size, [4, 4]); |
| 1052 | 1052 | assert_eq!(decoded.pixels.as_ref(), [255; 4 * 4 * 4]); |
| 1053 | 1053 | |
| 1054 | let mut gif = Vec::new(); | |
| 1055 | image::codecs::gif::GifEncoder::new(&mut gif) | |
| 1056 | .encode(&[255; 2 * 2 * 4], 2, 2, image::ExtendedColorType::Rgba8) | |
| 1057 | .unwrap(); | |
| 1058 | let decoded = RasterImage::decode(&gif).unwrap(); | |
| 1059 | assert_eq!(decoded.size, [2, 2]); | |
| 1060 | assert_eq!(decoded.pixels.as_ref(), [255; 2 * 2 * 4]); | |
| 1061 | ||
| 1054 | 1062 | for size in [[8192, 8192], [16_385, 1]] { |
| 1055 | 1063 | let mut header = Vec::new(); |
| 1056 | 1064 | let mut encoder = png::Encoder::new(&mut header, size[0], size[1]); |