1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CC_TEST_PIXEL_TEST_UTILS_H_
6#define CC_TEST_PIXEL_TEST_UTILS_H_
7
8#include "base/files/file_path.h"
9#include "cc/test/pixel_comparator.h"
10
11class SkBitmap;
12
13namespace cc {
14
15// Encodes a bitmap into a PNG and write to disk. Returns true on success. The
16// parent directory does not have to exist.
17bool WritePNGFile(const SkBitmap& bitmap, const base::FilePath& file_path,
18    bool discard_transparency);
19
20// Reads and decodes a PNG image to a bitmap. Returns true on success. The PNG
21// should have been encoded using |gfx::PNGCodec::Encode|.
22bool ReadPNGFile(const base::FilePath& file_path, SkBitmap* bitmap);
23
24// Compares with a PNG file on disk using the given PixelComparator, and returns
25// true if the comparator returns a match. |ref_img_path| is absolute.
26bool MatchesPNGFile(const SkBitmap& gen_bmp,
27                    base::FilePath ref_img_path,
28                    const PixelComparator& comparator);
29
30}  // namespace cc
31
32#endif  // CC_TEST_PIXEL_TEST_UTILS_H_
33