diff --git a/script/bench-rust-png/Cargo.toml b/script/bench-rust-png/Cargo.toml
index 3664f3e..e3983b3 100644
--- a/script/bench-rust-png/Cargo.toml
+++ b/script/bench-rust-png/Cargo.toml
@@ -4,5 +4,5 @@
 authors = ["Nigel Tao <nigeltao@golang.org>"]
 
 [dependencies]
-png     = "*"
+png     = "0.17"
 rustc_version_runtime = "*"
diff --git a/script/bench-rust-png/src/main.rs b/script/bench-rust-png/src/main.rs
index ca7be26..95a4c67 100644
--- a/script/bench-rust-png/src/main.rs
+++ b/script/bench-rust-png/src/main.rs
@@ -145,19 +145,20 @@
 
 // decode returns the number of bytes processed.
 fn decode(dst0: &mut [u8], dst1: &mut [u8], src: &[u8]) -> u64 {
-    let decoder = png::Decoder::new(src);
-    let (info, mut reader) = decoder.read_info().unwrap();
+    let mut decoder = png::Decoder::new(src);
+    decoder.set_transformations(png::Transformations::normalize_to_color8());
+    let mut reader = decoder.read_info().unwrap();
+    let info = reader.next_frame(dst0).unwrap();
     let num_bytes = info.buffer_size() as u64;
-    reader.next_frame(dst0).unwrap();
     if info.color_type == png::ColorType::Grayscale {
         // No conversion necessary.
         return num_bytes;
-    } else if info.color_type == png::ColorType::RGB {
+    } else if info.color_type == png::ColorType::Rgb {
         // Convert RGB => BGRA.
         let new_size = ((num_bytes / 3) * 4) as usize;
         rgb_to_bgra(&dst0[..num_bytes as usize], &mut dst1[..new_size]);
         return new_size as u64;
-    } else if info.color_type == png::ColorType::RGBA {
+    } else if info.color_type == png::ColorType::Rgba {
         // Convert RGBA => BGRA.
         for i in 0..((num_bytes / 4) as usize) {
             let d = dst0[(4 * i) + 0];
