diff --git a/pkgs/http/CHANGELOG.md b/pkgs/http/CHANGELOG.md
index 9bbbb05..7b8dec4 100644
--- a/pkgs/http/CHANGELOG.md
+++ b/pkgs/http/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.1.3-wip
+
+* Add `MockClient.pngResponse`, which makes it easier to fake image responses.
+
 ## 1.1.2
 
 * Allow `web: '>=0.3.0 <0.5.0'`.
diff --git a/pkgs/http/lib/src/mock_client.dart b/pkgs/http/lib/src/mock_client.dart
index bf2df40..52f108a 100644
--- a/pkgs/http/lib/src/mock_client.dart
+++ b/pkgs/http/lib/src/mock_client.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:convert';
+
 import 'base_client.dart';
 import 'base_request.dart';
 import 'byte_stream.dart';
@@ -10,6 +12,11 @@
 import 'streamed_request.dart';
 import 'streamed_response.dart';
 
+final _pngImageData = base64Decode(
+  'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDw'
+  'AEhQGAhKmMIQAAAABJRU5ErkJggg==',
+);
+
 // TODO(nweiz): once Dart has some sort of Rack- or WSGI-like standard for
 // server APIs, MockClient should conform to it.
 
@@ -69,6 +76,17 @@
     var bodyStream = request.finalize();
     return await _handler(request, bodyStream);
   }
+
+  /// Return a response containing a PNG image.
+  static Response pngResponse({BaseRequest? request}) {
+    final headers = {
+      'content-type': 'image/png',
+      'content-length': '${_pngImageData.length}'
+    };
+
+    return Response.bytes(_pngImageData, 200,
+        request: request, headers: headers, reasonPhrase: 'OK');
+  }
 }
 
 /// A handler function that receives [StreamedRequest]s and sends
diff --git a/pkgs/http/pubspec.yaml b/pkgs/http/pubspec.yaml
index 118292f..1645f96 100644
--- a/pkgs/http/pubspec.yaml
+++ b/pkgs/http/pubspec.yaml
@@ -1,5 +1,5 @@
 name: http
-version: 1.1.2
+version: 1.1.3-wip
 description: A composable, multi-platform, Future-based API for HTTP requests.
 repository: https://github.com/dart-lang/http/tree/master/pkgs/http
 
diff --git a/pkgs/http/test/mock_client_test.dart b/pkgs/http/test/mock_client_test.dart
index db561c5..625285c 100644
--- a/pkgs/http/test/mock_client_test.dart
+++ b/pkgs/http/test/mock_client_test.dart
@@ -5,6 +5,7 @@
 import 'dart:convert';
 
 import 'package:http/http.dart' as http;
+import 'package:http/src/request.dart';
 import 'package:http/testing.dart';
 import 'package:test/test.dart';
 
@@ -43,4 +44,25 @@
     expect(await client.read(Uri.http('example.com', '/foo')),
         equals('you did it'));
   });
+
+  test('pngResponse with default options', () {
+    final response = MockClient.pngResponse();
+    expect(response.statusCode, 200);
+    expect(response.bodyBytes.take(8),
+        [137, 80, 78, 71, 13, 10, 26, 10] // PNG header
+        );
+    expect(response.request, null);
+    expect(response.headers, containsPair('content-type', 'image/png'));
+  });
+
+  test('pngResponse with request', () {
+    final request = Request('GET', Uri.https('example.com'));
+    final response = MockClient.pngResponse(request: request);
+    expect(response.statusCode, 200);
+    expect(response.bodyBytes.take(8),
+        [137, 80, 78, 71, 13, 10, 26, 10] // PNG header
+        );
+    expect(response.request, request);
+    expect(response.headers, containsPair('content-type', 'image/png'));
+  });
 }
