2 // Open Service Platform
3 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
20 * @file FUixVisionQrCodeGenerator.h
21 * @brief This is the header file for the %QrCodeGenerator class.
23 * This header file contains the declarations of the %QrCodeGenerator class.
26 #ifndef _FUIX_VISION_QR_CODE_GENERATOR_H_
27 #define _FUIX_VISION_QR_CODE_GENERATOR_H_
28 #include <FBaseObject.h>
29 #include <FGrpBitmap.h>
32 #include "FUixVisionQrCodeTypes.h"
35 namespace Tizen { namespace Uix { namespace Vision
39 * @class QrCodeGenerator
40 * @brief This class provides methods to generate a QR code image.
44 * The %QrCodeGenerator class provides methods to generate a QR code image.
46 * The following example demonstrates how to use the %QrCodeGenerator class.
51 * #include <FGraphics.h>
55 * using namespace Tizen::Base;
56 * using namespace Tizen::Media;
57 * using namespace Tizen::Graphics;
58 * using namespace Tizen::Io;
59 * using namespace Tizen::Uix::Vision;
66 * result TestQrCodeGenerator(void);
70 * MyClass::TestQrCodeGenerator(void)
73 * QrCodeGenerator qrGen;
76 * int width(0), height(0);
77 * r = qrGen.EncodeToFile("Hello Tizen!",
79 * QR_CODE_ERROR_CORRECTION_LEVEL_Q,
81 * "/opt/usr/media/Images/temp.png",
82 * Tizen::Media::IMG_FORMAT_PNG,
89 class _OSP_EXPORT_ QrCodeGenerator
90 : public Tizen::Base::Object
95 * This is the default constructor for this class. @n
96 * The object is not fully constructed after this constructor is called. @n
97 * For full construction, the Construct() method must be called right after calling this constructor.
101 QrCodeGenerator(void);
104 * This is the destructor for this class. @n
105 * The resources are deallocated by this method.
106 * This destructor overrides Tizen::Base::Object::~Object().
110 ~QrCodeGenerator(void);
113 * Initializes this instance of %QRCodeGenerator. @n
114 * Every application must call the %Construct() method before calling any other method of %QRCodeGenerator.
118 * @feature %http://tizen.org/feature/vision.qrcode_generation
120 * @exception E_SUCCESS The method is successful.
121 * @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.
122 * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
123 * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
125 result Construct(void);
128 * Gets the list of supported image file formats.
132 * @return The list of supported image file formats
134 static Tizen::Base::Collection::IListT<Tizen::Media::ImageFormat>* GetSupportedImageFileFormatsListN(void);
137 * Encodes the QR code into the file.
141 * @return An error code
142 * @param[in] message The text used to encode the QR code image
143 * @param[in] mode The input text encoding format (@c QR_CODE_MODE_ALPHANUMERIC, @c QR_CODE_MODE_BYTE, or @c QR_CODE_MODE_UTF8)
144 * @param[in] errorCorrectionLevel The QR code error correction level
145 * @param[in] compatibility The compatibility mode with the zxing library for the UTF-8 codes mode, which is activated when the mode selected is @c QR_MODE_UTF8
146 * @param[in] imageFilePath The file path of the generated QR code image
147 * @param[in] imageFormat The image file format of the generated QR code image
148 * @param[out] width The width of the generated QR code image
149 * @param[out] height The height of the generated QR code image
150 * @exception E_SUCCESS The method is successful.
151 * @exception E_INVALID_ARG A specified input parameter is invalid.
152 * @exception E_FILE_NOT_FOUND The specified file cannot be found or accessed.
154 * @remarks The QR code encoding for the UTF-8 codes mode is not standardized as yet,
155 * so the UTF-8 encoding/decoding compatibility with the zxing(http://code.google.com/p/zxing/) library is currently supported.
157 result EncodeToFile(const Tizen::Base::String& message, QrCodeMode mode, QrCodeErrorCorrectionLevel errorCorrectionLevel, bool compatibility, const Tizen::Base::String& imageFilePath, Tizen::Media::ImageFormat imageFormat, int& width, int& height);
160 * Encodes the QR code into the byte buffer.
164 * @return A pointer to the Tizen::Base::ByteBuffer instance that contains the generated QR code image
165 * @param[in] message The text used to encode the QR code image
166 * @param[in] mode The input text encoding format (@c QR_CODE_MODE_ALPHANUMERIC, @c QR_CODE_MODE_BYTE, or @c QR_CODE_MODE_UTF8)
167 * @param[in] error_level The QR code error correction level
168 * @param[in] compatibility The compatibility mode with the zxing library for the UTF-8 codes mode, which is activated when the mode selected is @c QR_CODE_MODE_UTF8
169 * @param[out] width The width of the generated QR code image
170 * @param[out] height The height of the generated QR code image
171 * @exception E_SUCCESS The method is successful.
172 * @exception E_INVALID_ARG A specified input parameter is invalid.
174 * @remarks The QR code encoding for the UTF-8 codes mode is not standardized as yet,
175 * so the UTF-8 encoding/decoding compatibility with the zxing(http://code.google.com/p/zxing/) library is currently supported.
177 Tizen::Base::ByteBuffer* EncodeToBufferN(const Tizen::Base::String& message, QrCodeMode mode, QrCodeErrorCorrectionLevel error_level, bool compatibility, int& width, int& height);
182 * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
184 QrCodeGenerator(const QrCodeGenerator& in);
187 * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
189 QrCodeGenerator& operator=(const QrCodeGenerator& in);
192 class _QrCodeGeneratorImpl* __pQrCodeGeneratorImpl;
193 friend class _QrCodeGeneratorImpl;
196 } } } //Tizen::Uix::Vision
198 #endif // _FUIX_VISION_QR_CODE_GENERATOR_H_