diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2018-10-03 10:43:41 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2018-10-03 10:43:41 +0200 |
commit | cfd446218b9d84e9c6f1b078f8d73fb6df7a8277 (patch) | |
tree | 93fe5478a3cf0a8ef2b1ef25fc885d437505004b /components/script/dom/htmlcanvaselement.rs | |
parent | a3392610c3414a86a2294073bdc59c78c237bfda (diff) | |
download | servo-cfd446218b9d84e9c6f1b078f8d73fb6df7a8277.tar.gz servo-cfd446218b9d84e9c6f1b078f8d73fb6df7a8277.zip |
Slightly clean up the final URL creation in canvas.toDataURL
Diffstat (limited to 'components/script/dom/htmlcanvaselement.rs')
-rw-r--r-- | components/script/dom/htmlcanvaselement.rs | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index 2d50830fba1..2a84accf37c 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -396,19 +396,16 @@ impl HTMLCanvasElementMethods for HTMLCanvasElement { }, }; - // Only handle image/png for now. - let mime_type = "image/png"; - - let mut encoded = Vec::new(); - { - let encoder: PNGEncoder<&mut Vec<u8>> = PNGEncoder::new(&mut encoded); - encoder - .encode(&raw_data, self.Width(), self.Height(), ColorType::RGBA(8)) - .unwrap(); - } - - let encoded = base64::encode(&encoded); - Ok(USVString(format!("data:{};base64,{}", mime_type, encoded))) + // FIXME: Only handle image/png for now. + let mut png = Vec::new(); + PNGEncoder::new(&mut png) + .encode(&raw_data, self.Width(), self.Height(), ColorType::RGBA(8)) + .unwrap(); + let mut url = "data:image/png;base64,".to_owned(); + // FIXME(nox): Should this use base64::URL_SAFE? + // FIXME(nox): https://github.com/alicemaz/rust-base64/pull/56 + base64::encode_config_buf(&png, base64::STANDARD, &mut url); + Ok(USVString(url)) } } |