|  | // Copyright 2019 Google LLC. | 
|  | // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | #include "include/core/SkBitmap.h" | 
|  | #include "include/core/SkStream.h" | 
|  | #include "tools/flags/CommandLineFlags.h" | 
|  |  | 
|  | class HashAndEncode { | 
|  | public: | 
|  | explicit HashAndEncode(const SkBitmap&); | 
|  |  | 
|  | void write(SkWStream*) const; | 
|  |  | 
|  | bool writePngTo(const char* path, | 
|  | const char* md5, | 
|  | CommandLineFlags::StringArray key, | 
|  | CommandLineFlags::StringArray properties) const; | 
|  |  | 
|  | private: | 
|  | const SkISize               fSize; | 
|  | std::unique_ptr<uint64_t[]> fPixels; | 
|  | }; | 
|  |  |