12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_TEST_PIXEL_TEST_UTILS_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_TEST_PIXEL_TEST_UTILS_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h"
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/test/pixel_comparator.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class SkBitmap;
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Encodes a bitmap into a PNG and write to disk. Returns true on success. The
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// parent directory does not have to exist.
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool WritePNGFile(const SkBitmap& bitmap, const base::FilePath& file_path,
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    bool discard_transparency);
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Reads and decodes a PNG image to a bitmap. Returns true on success. The PNG
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// should have been encoded using |gfx::PNGCodec::Encode|.
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool ReadPNGFile(const base::FilePath& file_path, SkBitmap* bitmap);
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstd::string GetPNGDataUrl(const SkBitmap& bitmap);
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Compares with a PNG file on disk using the given PixelComparator, and returns
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// true if the comparator returns a match. |ref_img_path| is absolute.
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool MatchesPNGFile(const SkBitmap& gen_bmp,
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                    base::FilePath ref_img_path,
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                    const PixelComparator& comparator);
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_TEST_PIXEL_TEST_UTILS_H_
35