/* * Copyright 2023 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkJpegGainmapEncoder_DEFINED #define SkJpegGainmapEncoder_DEFINED #include "include/encode/SkJpegEncoder.h" class SkPixmap; class SkWStream; struct SkGainmapInfo; class SK_API SkJpegGainmapEncoder { public: /** * Encode an UltraHDR image to |dst|. * * The base image is specified by |base|, and |baseOptions| controls the encoding behavior for * the base image. * * The gainmap image is specified by |gainmap|, and |gainmapOptions| controls the encoding * behavior for the gainmap image. * * The rendering behavior of the gainmap image is provided in |gainmapInfo|. * * If |baseOptions| or |gainmapOptions| specify XMP metadata, then that metadata will be * overwritten. * * Returns true on success. Returns false on an invalid or unsupported |src|. */ static bool EncodeHDRGM(SkWStream* dst, const SkPixmap& base, const SkJpegEncoder::Options& baseOptions, const SkPixmap& gainmap, const SkJpegEncoder::Options& gainmapOptions, const SkGainmapInfo& gainmapInfo); /** * Write a Multi Picture Format containing the |imageCount| images specified by |images|. */ static bool MakeMPF(SkWStream* dst, const SkData** images, size_t imageCount); }; #endif