Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Unified Diff: tools/telemetry/telemetry/core/chrome/png_bitmap.py

Issue 12294002: Revert 182991 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/chrome/png_bitmap.py
===================================================================
--- tools/telemetry/telemetry/core/chrome/png_bitmap.py (revision 182999)
+++ tools/telemetry/telemetry/core/chrome/png_bitmap.py (working copy)
@@ -1,69 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-import sys
-import os
-import base64
-
-PNG_PATH = os.path.join(os.path.dirname(__file__), '../../../third_party/png')
-if PNG_PATH not in sys.path:
- sys.path.append(PNG_PATH)
-
-import png # pylint: disable=F0401
-
-class PngColor(object):
- """Encapsulates an RGB color retreived from a PngBitmap"""
-
- def __init__(self, r, g, b, a=255):
- self.r = r
- self.g = g
- self.b = b
- self.a = a
-
- def IsEqual(self, expected_color, tolerance=0):
- """Verifies that the color is within a given tolerance of
- the expected color"""
- r_diff = abs(self.r - expected_color.r)
- g_diff = abs(self.g - expected_color.g)
- b_diff = abs(self.b - expected_color.b)
- a_diff = abs(self.a - expected_color.a)
- return (r_diff <= tolerance and g_diff <= tolerance
- and b_diff <= tolerance and a_diff <= tolerance)
-
- def AssertIsRGB(self, r, g, b, tolerance=0):
- assert self.IsEqual(PngColor(r, g, b), tolerance)
-
- def AssertIsRGBA(self, r, g, b, a, tolerance=0):
- assert self.IsEqual(PngColor(r, g, b, a), tolerance)
-
-class PngBitmap(object):
- """Utilities for parsing and inspecting inspecting a PNG"""
-
- def __init__(self, base64_png):
- self._png_data = base64.b64decode(base64_png)
- self._png = png.Reader(bytes=self._png_data)
- rgba8_data = self._png.asRGBA8()
- self._width = rgba8_data[0]
- self._height = rgba8_data[1]
- self._pixels = list(rgba8_data[2])
- self._metadata = rgba8_data[3]
-
- @property
- def width(self):
- """Width of the snapshot"""
- return self._width
-
- @property
- def height(self):
- """Height of the snapshot"""
- return self._height
-
- def GetPixelColor(self, x, y):
- """Returns a PngColor for the pixel at (x, y)"""
- row = self._pixels[y]
- offset = x * 4
- return PngColor(row[offset], row[offset+1], row[offset+2], row[offset+3])
-
- def WriteFile(self, path):
- with open(path, "wb") as f:
- f.write(self._png_data)
« no previous file with comments | « tools/telemetry/telemetry/core/chrome/platform.py ('k') | tools/telemetry/telemetry/core/chrome/png_bitmap_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698