X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fimaging%2Fcommon%2Fnative-image-source-impl.h;h=0833f51f6886d96a920448d211e03ff32a3bce00;hb=refs%2Fchanges%2F57%2F230557%2F15;hp=d5f292fd43607bbc905d3945e1e9f4f3f65bf949;hpb=9e785224f3659b53537ebbe6e15f999f5d5e64a0;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/imaging/common/native-image-source-impl.h b/dali/internal/imaging/common/native-image-source-impl.h index d5f292f..0833f51 100755 --- a/dali/internal/imaging/common/native-image-source-impl.h +++ b/dali/internal/imaging/common/native-image-source-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_NATIVE_IMAGE_SOURCE_IMPL_H /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ // INTERNAL INCLUDES #include +#include namespace Dali { @@ -37,6 +38,8 @@ class NativeImageSource { public: + static constexpr uint32_t DEFAULT_QUALITY = 100; + /** * Create a new NativeImageSource internally. * Depending on hardware the width and height may have to be a power of two. @@ -61,11 +64,6 @@ public: virtual bool GetPixels(std::vector &pixbuf, uint32_t &width, uint32_t &height, Pixel::Format& pixelFormat ) const = 0; /** - * @copydoc Dali::NativeImageSource::EncodeToFile(const std::string& ) - */ - virtual bool EncodeToFile(const std::string& filename) const = 0; - - /** * @copydoc Dali::NativeImageSource::SetSource( Any source ) */ virtual void SetSource( Any source ) = 0; @@ -130,6 +128,37 @@ public: */ virtual bool ReleaseBuffer() = 0; + /** + * @copydoc Dali::NativeImageSource::EncodeToFile(const std::string& ) + */ + inline bool EncodeToFile( const std::string& filename ) const + { + return EncodeToFile( filename, DEFAULT_QUALITY ); + } + + /** + * @brief Converts the current pixel contents to either a JPEG or PNG format + * and write that to the filesystem. + * + * @param[in] filename Identify the filesystem location at which to write the encoded image. + * The extension determines the encoding used. + * The two valid encoding are (".jpeg"|".jpg") and ".png". + * @param[in] quality The quality of encoded jpeg image + * @return @c true if the pixels were written, and @c false otherwise + */ + inline bool EncodeToFile( const std::string& filename, const uint32_t quality ) const + { + std::vector< uint8_t > pixbuf; + uint32_t width( 0 ), height( 0 ); + Pixel::Format pixelFormat; + + if( GetPixels( pixbuf, width, height, pixelFormat ) ) + { + return Dali::EncodeToFile( &pixbuf[0], filename, pixelFormat, width, height, quality ); + } + return false; + } + public: inline static Internal::Adaptor::NativeImageSource& GetImplementation( Dali::NativeImageSource& image ) { return *image.mImpl; } };