Update image/png.

This commit is contained in:
Josh Matthews 2022-04-01 02:07:17 -04:00
parent 2059f117b4
commit 369a5c0370
10 changed files with 209 additions and 64 deletions

244
Cargo.lock generated
View file

@ -33,10 +33,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
[[package]] [[package]]
name = "adler32" name = "adler"
version = "1.0.4" version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "adler32"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
@ -337,6 +343,12 @@ version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
[[package]]
name = "bit_field"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.2.1" version = "1.2.1"
@ -496,9 +508,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
[[package]] [[package]]
name = "bytemuck" name = "bytemuck"
version = "1.5.1" version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bed57e2090563b83ba8f83366628ce535a7584c9afa4c9fc0612a03925c6df58" checksum = "ee1e0e2125faccb856bf10b0a9dfa89c4c718d05ef85580dfefbdf1c422ef801"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
@ -838,9 +850,9 @@ dependencies = [
[[package]] [[package]]
name = "color_quant" name = "color_quant"
version = "1.0.1" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
[[package]] [[package]]
name = "combine" name = "combine"
@ -863,7 +875,7 @@ dependencies = [
"euclid", "euclid",
"gfx_traits", "gfx_traits",
"gleam 0.12.1", "gleam 0.12.1",
"image", "image 0.24.1",
"ipc-channel", "ipc-channel",
"keyboard-types", "keyboard-types",
"libc", "libc",
@ -1197,7 +1209,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"serde", "serde",
"smallvec 1.6.1", "smallvec 1.8.0",
"syn", "syn",
] ]
@ -1306,6 +1318,15 @@ dependencies = [
"byteorder", "byteorder",
] ]
[[package]]
name = "deflate"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f"
dependencies = [
"adler32",
]
[[package]] [[package]]
name = "deny_public_fields" name = "deny_public_fields"
version = "0.0.1" version = "0.0.1"
@ -1634,6 +1655,22 @@ dependencies = [
"serde", "serde",
] ]
[[package]]
name = "exr"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4badb9489a465cb2c555af1f00f0bfd8cecd6fc12ac11da9d5b40c5dd5f0200"
dependencies = [
"bit_field",
"deflate 1.0.0",
"flume",
"half",
"inflate",
"lebe",
"smallvec 1.8.0",
"threadpool",
]
[[package]] [[package]]
name = "fake-simd" name = "fake-simd"
version = "0.1.2" version = "0.1.2"
@ -1645,7 +1682,7 @@ name = "fallible"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"hashglobe", "hashglobe",
"smallvec 1.6.1", "smallvec 1.8.0",
] ]
[[package]] [[package]]
@ -1678,6 +1715,19 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
[[package]]
name = "flume"
version = "0.10.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "843c03199d0c0ca54bc1ea90ac0d507274c28abcc4f691ae8b4eaa375087c76a"
dependencies = [
"futures-core",
"futures-sink",
"nanorand",
"pin-project 1.0.2",
"spin",
]
[[package]] [[package]]
name = "fnv" name = "fnv"
version = "1.0.7" version = "1.0.7"
@ -1964,8 +2014,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"js-sys",
"libc", "libc",
"wasi 0.10.2+wasi-snapshot-preview1", "wasi 0.10.2+wasi-snapshot-preview1",
"wasm-bindgen",
] ]
[[package]] [[package]]
@ -2036,7 +2088,7 @@ dependencies = [
"parking_lot 0.11.0", "parking_lot 0.11.0",
"range-alloc", "range-alloc",
"raw-window-handle", "raw-window-handle",
"smallvec 1.6.1", "smallvec 1.8.0",
"spirv_cross", "spirv_cross",
"thunderdome", "thunderdome",
"winapi", "winapi",
@ -2058,7 +2110,7 @@ dependencies = [
"log", "log",
"range-alloc", "range-alloc",
"raw-window-handle", "raw-window-handle",
"smallvec 1.6.1", "smallvec 1.8.0",
"spirv_cross", "spirv_cross",
"winapi", "winapi",
] ]
@ -2095,7 +2147,7 @@ dependencies = [
"parking_lot 0.11.0", "parking_lot 0.11.0",
"range-alloc", "range-alloc",
"raw-window-handle", "raw-window-handle",
"smallvec 1.6.1", "smallvec 1.8.0",
"spirv_cross", "spirv_cross",
"storage-map", "storage-map",
] ]
@ -2116,7 +2168,7 @@ dependencies = [
"log", "log",
"objc", "objc",
"raw-window-handle", "raw-window-handle",
"smallvec 1.6.1", "smallvec 1.8.0",
"winapi", "winapi",
] ]
@ -2885,12 +2937,28 @@ checksum = "985fc06b1304d19c28d5c562ed78ef5316183f2b0053b46763a0b94862373c34"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"byteorder", "byteorder",
"gif",
"jpeg-decoder",
"num-iter", "num-iter",
"num-rational 0.3.0", "num-rational 0.3.0",
"num-traits", "num-traits",
"png", "png 0.16.6",
]
[[package]]
name = "image"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db207d030ae38f1eb6f240d5a1c1c88ff422aa005d10f8c6c6fc5e75286ab30e"
dependencies = [
"bytemuck",
"byteorder",
"color_quant",
"exr",
"gif",
"jpeg-decoder 0.2.3",
"num-iter",
"num-rational 0.4.0",
"num-traits",
"png 0.17.5",
"scoped_threadpool", "scoped_threadpool",
"tiff", "tiff",
] ]
@ -2916,6 +2984,15 @@ dependencies = [
"hashbrown", "hashbrown",
] ]
[[package]]
name = "inflate"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff"
dependencies = [
"adler32",
]
[[package]] [[package]]
name = "inplace_it" name = "inplace_it"
version = "0.3.2" version = "0.3.2"
@ -3040,6 +3117,12 @@ name = "jpeg-decoder"
version = "0.1.22" version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
[[package]]
name = "jpeg-decoder"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a55ad40a2d27923f63b6fbde5934926176c69ac5e23da6ac05ebfaca984e163f"
dependencies = [ dependencies = [
"rayon", "rayon",
] ]
@ -3232,7 +3315,7 @@ dependencies = [
"metrics", "metrics",
"msg", "msg",
"net_traits", "net_traits",
"parking_lot 0.10.2", "parking_lot 0.11.0",
"profile_traits", "profile_traits",
"range", "range",
"script", "script",
@ -3292,6 +3375,12 @@ dependencies = [
"leak", "leak",
] ]
[[package]]
name = "lebe"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7efd1d698db0759e6ef11a7cd44407407399a910c774dd804c64c032da7826ff"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.121" version = "0.2.121"
@ -3357,7 +3446,7 @@ dependencies = [
"log", "log",
"servo-egl", "servo-egl",
"simpleservo", "simpleservo",
"smallvec 1.6.1", "smallvec 1.8.0",
"webxr", "webxr",
"webxr-api", "webxr-api",
] ]
@ -3495,12 +3584,6 @@ dependencies = [
"num-traits", "num-traits",
] ]
[[package]]
name = "lzw"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
[[package]] [[package]]
name = "mac" name = "mac"
version = "0.1.1" version = "0.1.1"
@ -3544,7 +3627,7 @@ dependencies = [
"serde_bytes", "serde_bytes",
"servo_arc", "servo_arc",
"smallbitvec", "smallbitvec",
"smallvec 1.6.1", "smallvec 1.8.0",
"string_cache", "string_cache",
"thin-slice", "thin-slice",
"time", "time",
@ -3741,7 +3824,16 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
dependencies = [ dependencies = [
"adler", "adler 0.2.3",
]
[[package]]
name = "miniz_oxide"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
dependencies = [
"adler 1.0.2",
] ]
[[package]] [[package]]
@ -3890,6 +3982,15 @@ dependencies = [
"thiserror", "thiserror",
] ]
[[package]]
name = "nanorand"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
dependencies = [
"getrandom 0.2.6",
]
[[package]] [[package]]
name = "native-tls" name = "native-tls"
version = "0.2.7" version = "0.2.7"
@ -4034,7 +4135,7 @@ dependencies = [
"http", "http",
"hyper 0.14.5", "hyper 0.14.5",
"hyper_serde", "hyper_serde",
"image", "image 0.24.1",
"ipc-channel", "ipc-channel",
"lazy_static", "lazy_static",
"log", "log",
@ -4198,6 +4299,17 @@ dependencies = [
"num-traits", "num-traits",
] ]
[[package]]
name = "num-rational"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]] [[package]]
name = "num-traits" name = "num-traits"
version = "0.2.14" version = "0.2.14"
@ -4410,7 +4522,7 @@ dependencies = [
"cloudabi 0.0.3", "cloudabi 0.0.3",
"libc", "libc",
"redox_syscall 0.1.56", "redox_syscall 0.1.56",
"smallvec 1.6.1", "smallvec 1.8.0",
"winapi", "winapi",
] ]
@ -4425,7 +4537,7 @@ dependencies = [
"instant", "instant",
"libc", "libc",
"redox_syscall 0.1.56", "redox_syscall 0.1.56",
"smallvec 1.6.1", "smallvec 1.8.0",
"winapi", "winapi",
] ]
@ -4718,10 +4830,22 @@ checksum = "c150bf7479fafe3dd8740dbe48cc33b2a3efb7b0fe3483aced8bbc39f6d0238d"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"crc32fast", "crc32fast",
"deflate", "deflate 0.8.6",
"miniz_oxide 0.3.7", "miniz_oxide 0.3.7",
] ]
[[package]]
name = "png"
version = "0.17.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba"
dependencies = [
"bitflags",
"crc32fast",
"deflate 1.0.0",
"miniz_oxide 0.5.1",
]
[[package]] [[package]]
name = "podio" name = "podio"
version = "0.1.7" version = "0.1.7"
@ -4944,7 +5068,7 @@ dependencies = [
"font-kit", "font-kit",
"lyon_geom 0.15.0", "lyon_geom 0.15.0",
"pathfinder_geometry", "pathfinder_geometry",
"png", "png 0.16.6",
"sw-composite", "sw-composite",
"typed-arena", "typed-arena",
] ]
@ -4960,9 +5084,9 @@ dependencies = [
[[package]] [[package]]
name = "rayon" name = "rayon"
version = "1.5.0" version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [ dependencies = [
"autocfg", "autocfg",
"crossbeam-deque", "crossbeam-deque",
@ -5194,7 +5318,7 @@ dependencies = [
"html5ever", "html5ever",
"http", "http",
"hyper_serde", "hyper_serde",
"image", "image 0.24.1",
"indexmap", "indexmap",
"ipc-channel", "ipc-channel",
"itertools", "itertools",
@ -5388,7 +5512,7 @@ dependencies = [
"phf_codegen 0.8.0", "phf_codegen 0.8.0",
"precomputed-hash", "precomputed-hash",
"servo_arc", "servo_arc",
"smallvec 1.6.1", "smallvec 1.8.0",
"to_shmem", "to_shmem",
"to_shmem_derive", "to_shmem_derive",
] ]
@ -5472,7 +5596,7 @@ dependencies = [
"clipboard", "clipboard",
"euclid", "euclid",
"getopts", "getopts",
"image", "image 0.24.1",
"keyboard-types", "keyboard-types",
"lazy_static", "lazy_static",
"libc", "libc",
@ -5943,9 +6067,9 @@ dependencies = [
[[package]] [[package]]
name = "smallvec" name = "smallvec"
version = "1.6.1" version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -6005,6 +6129,15 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b72d540d5c565dbe1f891d7e21ceb21d2649508306782f1066989fccb0b363d3" checksum = "b72d540d5c565dbe1f891d7e21ceb21d2649508306782f1066989fccb0b363d3"
[[package]]
name = "spin"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5"
dependencies = [
"lock_api 0.4.1",
]
[[package]] [[package]]
name = "spirv_cross" name = "spirv_cross"
version = "0.22.1" version = "0.22.1"
@ -6128,7 +6261,7 @@ dependencies = [
"servo_config", "servo_config",
"servo_url", "servo_url",
"smallbitvec", "smallbitvec",
"smallvec 1.6.1", "smallvec 1.8.0",
"string_cache", "string_cache",
"style_derive", "style_derive",
"style_traits", "style_traits",
@ -6384,6 +6517,15 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "threadpool"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
dependencies = [
"num_cpus",
]
[[package]] [[package]]
name = "thunderdome" name = "thunderdome"
version = "0.3.0" version = "0.3.0"
@ -6392,13 +6534,13 @@ checksum = "7572415bd688d401c52f6e36f4c8e805b9ae1622619303b9fa835d531db0acae"
[[package]] [[package]]
name = "tiff" name = "tiff"
version = "0.5.0" version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f3b8a87c4da944c3f27e5943289171ac71a6150a79ff6bacfff06d159dfff2f" checksum = "0247608e998cb6ce39dfc8f4a16c50361ce71e5b52e6d24ea1227ea8ea8ee0b2"
dependencies = [ dependencies = [
"byteorder", "flate2",
"lzw", "jpeg-decoder 0.1.22",
"miniz_oxide 0.3.7", "weezl",
] ]
[[package]] [[package]]
@ -6450,7 +6592,7 @@ dependencies = [
"cssparser", "cssparser",
"servo_arc", "servo_arc",
"smallbitvec", "smallbitvec",
"smallvec 1.6.1", "smallvec 1.8.0",
"string_cache", "string_cache",
"thin-slice", "thin-slice",
] ]
@ -6985,7 +7127,7 @@ checksum = "8bd75ae380325dbcff2707f0cd9869827ea1d2d6d534cff076858d3f0460fd5a"
dependencies = [ dependencies = [
"nix 0.20.0", "nix 0.20.0",
"once_cell", "once_cell",
"smallvec 1.6.1", "smallvec 1.8.0",
"wayland-sys 0.28.5", "wayland-sys 0.28.5",
] ]
@ -7078,7 +7220,7 @@ dependencies = [
"euclid", "euclid",
"headers", "headers",
"http", "http",
"image", "image 0.24.1",
"ipc-channel", "ipc-channel",
"keyboard-types", "keyboard-types",
"log", "log",
@ -7136,7 +7278,7 @@ dependencies = [
"fxhash", "fxhash",
"gleam 0.12.1", "gleam 0.12.1",
"glslopt", "glslopt",
"image", "image 0.23.10",
"lazy_static", "lazy_static",
"libc", "libc",
"log", "log",
@ -7148,7 +7290,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"sig", "sig",
"smallvec 1.6.1", "smallvec 1.8.0",
"svg_fmt", "svg_fmt",
"time", "time",
"tracy-rs", "tracy-rs",
@ -7268,7 +7410,7 @@ dependencies = [
"parking_lot 0.11.0", "parking_lot 0.11.0",
"ron 0.6.0", "ron 0.6.0",
"serde", "serde",
"smallvec 1.6.1", "smallvec 1.8.0",
"thiserror", "thiserror",
"tracing", "tracing",
"wgpu-types", "wgpu-types",

View file

@ -22,7 +22,7 @@ embedder_traits = { path = "../embedder_traits" }
euclid = "0.20" euclid = "0.20"
gfx_traits = { path = "../gfx_traits" } gfx_traits = { path = "../gfx_traits" }
gleam = { version = "0.12", optional = true } gleam = { version = "0.12", optional = true }
image = "0.23" image = "0.24"
ipc-channel = "0.14" ipc-channel = "0.14"
keyboard-types = "0.6" keyboard-types = "0.6"
libc = "0.2" libc = "0.2"

View file

@ -29,7 +29,7 @@ mime = "0.3"
msg = { path = "../msg" } msg = { path = "../msg" }
num-traits = "0.2" num-traits = "0.2"
percent-encoding = "2.0" percent-encoding = "2.0"
piston_image = { package = "image", version = "0.23" } piston_image = { package = "image", version = "0.24" }
pixels = { path = "../pixels" } pixels = { path = "../pixels" }
serde = "1.0" serde = "1.0"
servo_arc = { path = "../servo_arc" } servo_arc = { path = "../servo_arc" }

View file

@ -4,7 +4,7 @@
use crate::image_cache::CorsStatus; use crate::image_cache::CorsStatus;
use ipc_channel::ipc::IpcSharedMemory; use ipc_channel::ipc::IpcSharedMemory;
use piston_image::{DynamicImage, ImageFormat}; use piston_image::ImageFormat;
use pixels::PixelFormat; use pixels::PixelFormat;
use std::fmt; use std::fmt;
@ -52,10 +52,7 @@ pub fn load_from_memory(buffer: &[u8], cors_status: CorsStatus) -> Option<Image>
}, },
Ok(_) => match piston_image::load_from_memory(buffer) { Ok(_) => match piston_image::load_from_memory(buffer) {
Ok(image) => { Ok(image) => {
let mut rgba = match image { let mut rgba = image.into_rgba8();
DynamicImage::ImageRgba8(rgba) => rgba,
image => image.to_rgba(),
};
pixels::rgba8_byte_swap_colors_inplace(&mut *rgba); pixels::rgba8_byte_swap_colors_inplace(&mut *rgba);
Some(Image { Some(Image {
width: rgba.width(), width: rgba.width(),

View file

@ -58,7 +58,7 @@ headers = "0.3"
html5ever = "0.26" html5ever = "0.26"
http = "0.2" http = "0.2"
hyper_serde = "0.12" hyper_serde = "0.12"
image = "0.23" image = "0.24"
indexmap = { version = "1.0.2", features = ["std"] } indexmap = { version = "1.0.2", features = ["std"] }
ipc-channel = "0.14" ipc-channel = "0.14"
itertools = "0.8" itertools = "0.8"

View file

@ -37,7 +37,7 @@ use canvas_traits::webgl::{GLContextAttributes, WebGLVersion};
use dom_struct::dom_struct; use dom_struct::dom_struct;
use euclid::default::{Rect, Size2D}; use euclid::default::{Rect, Size2D};
use html5ever::{LocalName, Prefix}; use html5ever::{LocalName, Prefix};
use image::png::PngEncoder; use image::codecs::png::PngEncoder;
use image::ColorType; use image::ColorType;
use ipc_channel::ipc::{self as ipcchan, IpcSharedMemory}; use ipc_channel::ipc::{self as ipcchan, IpcSharedMemory};
use js::error::throw_type_error; use js::error::throw_type_error;

View file

@ -18,7 +18,7 @@ crossbeam-channel = "0.4"
euclid = "0.20" euclid = "0.20"
headers = "0.3" headers = "0.3"
http = "0.2" http = "0.2"
image = "0.23" image = "0.24"
ipc-channel = "0.14" ipc-channel = "0.14"
keyboard-types = "0.6" keyboard-types = "0.6"
log = "0.4" log = "0.4"

View file

@ -43,6 +43,7 @@ use servo_url::ServoUrl;
use std::borrow::ToOwned; use std::borrow::ToOwned;
use std::collections::{BTreeMap, HashMap}; use std::collections::{BTreeMap, HashMap};
use std::fmt; use std::fmt;
use std::io::Cursor;
use std::mem; use std::mem;
use std::net::{SocketAddr, SocketAddrV4}; use std::net::{SocketAddr, SocketAddrV4};
use std::thread; use std::thread;
@ -1589,12 +1590,12 @@ impl Handler {
); );
let rgb = RgbImage::from_raw(img.width, img.height, img.bytes.to_vec()).unwrap(); let rgb = RgbImage::from_raw(img.width, img.height, img.bytes.to_vec()).unwrap();
let mut png_data = Vec::new(); let mut png_data = Cursor::new(Vec::new());
DynamicImage::ImageRgb8(rgb) DynamicImage::ImageRgb8(rgb)
.write_to(&mut png_data, ImageFormat::Png) .write_to(&mut png_data, ImageFormat::Png)
.unwrap(); .unwrap();
Ok(base64::encode(&png_data)) Ok(base64::encode(png_data.get_ref()))
} }
fn handle_take_screenshot(&self) -> WebDriverResult<WebDriverResponse> { fn handle_take_screenshot(&self) -> WebDriverResult<WebDriverResponse> {

View file

@ -63,7 +63,7 @@ webxr = { git = "https://github.com/servo/webxr", features = ["ipc", "glwindow",
winit = "0.24" winit = "0.24"
[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies] [target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies]
image = "0.23" image = "0.24"
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies] [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies]
sig = "1.0" sig = "1.0"

View file

@ -28,6 +28,7 @@ rand = [
[ignore] [ignore]
# Ignored packages with duplicated versions # Ignored packages with duplicated versions
packages = [ packages = [
"adler",
"arrayvec", "arrayvec",
"base64", "base64",
"cfg-if", "cfg-if",
@ -36,11 +37,14 @@ packages = [
"cookie", "cookie",
"crossbeam-channel", "crossbeam-channel",
"crossbeam-utils", "crossbeam-utils",
"deflate",
"env_logger", "env_logger",
"fixedbitset", "fixedbitset",
"getrandom", "getrandom",
"gleam", "gleam",
"h2", "h2",
"image",
"jpeg-decoder",
"libloading", "libloading",
"lock_api", "lock_api",
"metal", "metal",
@ -53,6 +57,7 @@ packages = [
"phf_codegen", "phf_codegen",
"phf_generator", "phf_generator",
"phf_shared", "phf_shared",
"png",
"rand", "rand",
"rand_chacha", "rand_chacha",
"rand_core", "rand_core",