get image from skcodec

Part of the larger work to remove drawImage from canvas (and in general
simplify our apis w.r.t. older patterns like skbitmap).

Change-Id: If208927e1d46256519036c42e68aec3d3c809a82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/358836
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp
index 9695084..409f13d2 100644
--- a/gm/bitmapimage.cpp
+++ b/gm/bitmapimage.cpp
@@ -48,9 +48,7 @@
 
         // Create matching bitmap.
         std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(GetResourceAsStream(path)));
-        SkBitmap bitmap;
-        bitmap.allocPixels(codec->getInfo());
-        codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes());
+        auto [codecImage, _] = codec->getImage();
 
         // The GM will be displayed in a 2x2 grid.
         // The top two squares show an sRGB image, then bitmap, drawn to a legacy canvas.
@@ -60,7 +58,7 @@
         SkCanvas legacyCanvas(legacyBMCanvas);
         legacyCanvas.drawImage(image, 0.0f, 0.0f);
         legacyCanvas.translate(SkScalar(kSize), 0.0f);
-        legacyCanvas.drawImage(bitmap.asImage(), 0.0f, 0.0f);
+        legacyCanvas.drawImage(codecImage, 0.0f, 0.0f);
         canvas->drawImage(legacyBMCanvas.asImage(), 0.0f, 0.0f);
         canvas->translate(0.0f, SkScalar(kSize));
 
@@ -71,7 +69,7 @@
         SkCanvas srgbCanvas(srgbBMCanvas);
         srgbCanvas.drawImage(image, 0.0f, 0.0f);
         srgbCanvas.translate(SkScalar(kSize), 0.0f);
-        srgbCanvas.drawImage(bitmap.asImage(), 0.0f, 0.0f);
+        srgbCanvas.drawImage(codecImage, 0.0f, 0.0f);
         canvas->drawImage(srgbBMCanvas.asImage(), 0.0f, 0.0f);
         return DrawResult::kOk;
     }