1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2016 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#ifndef SkImageEncoderPriv_DEFINED 9cb93a386Sopenharmony_ci#define SkImageEncoderPriv_DEFINED 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "include/core/SkImageEncoder.h" 12cb93a386Sopenharmony_ci#include "include/private/SkImageInfoPriv.h" 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_cistatic inline bool SkPixmapIsValid(const SkPixmap& src) { 15cb93a386Sopenharmony_ci if (!SkImageInfoIsValid(src.info())) { 16cb93a386Sopenharmony_ci return false; 17cb93a386Sopenharmony_ci } 18cb93a386Sopenharmony_ci 19cb93a386Sopenharmony_ci if (!src.addr() || src.rowBytes() < src.info().minRowBytes()) { 20cb93a386Sopenharmony_ci return false; 21cb93a386Sopenharmony_ci } 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_ci return true; 24cb93a386Sopenharmony_ci} 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) 27cb93a386Sopenharmony_ci bool SkEncodeImageWithCG(SkWStream*, const SkPixmap&, SkEncodedImageFormat); 28cb93a386Sopenharmony_ci#else 29cb93a386Sopenharmony_ci #define SkEncodeImageWithCG(...) false 30cb93a386Sopenharmony_ci#endif 31cb93a386Sopenharmony_ci 32cb93a386Sopenharmony_ci#ifdef SK_BUILD_FOR_WIN 33cb93a386Sopenharmony_ci bool SkEncodeImageWithWIC(SkWStream*, const SkPixmap&, SkEncodedImageFormat, int quality); 34cb93a386Sopenharmony_ci#else 35cb93a386Sopenharmony_ci #define SkEncodeImageWithWIC(...) false 36cb93a386Sopenharmony_ci#endif 37cb93a386Sopenharmony_ci 38cb93a386Sopenharmony_ci#ifdef SK_ENABLE_NDK_IMAGES 39cb93a386Sopenharmony_ci bool SkEncodeImageWithNDK(SkWStream*, const SkPixmap&, SkEncodedImageFormat, int quality); 40cb93a386Sopenharmony_ci#else 41cb93a386Sopenharmony_ci #define SkEncodeImageWithNDK(...) false 42cb93a386Sopenharmony_ci#endif 43cb93a386Sopenharmony_ci 44cb93a386Sopenharmony_ci#endif // SkImageEncoderPriv_DEFINED 45