* imageFeatureManager.AddFeature("/opt/usr/media/Images/image3.jpg");
* imageFeatureManager.Flush();
* }
+ * @endcode
*/
class _OSP_EXPORT_ ImageFeatureManager
: public Tizen::Base::Object
Tizen::Base::String
ImageFeatureInfo::GetDescription() const
{
+ ClearLastResult();
+
char ch;
int length = -1;
return Tizen::Base::String("");
}
- char* pName = new char[length + 1];
+ std::unique_ptr<char[]> pName(new (std::nothrow) char[length + 1]);
+ SysTryReturn(NID_UIX, pName != null, Tizen::Base::String(""), E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY))
//set data to char pointer, with allocated memory
- __pImageFeatureInfoImpl->GetDescription(pName, length + 1);
+ __pImageFeatureInfoImpl->GetDescription(pName.get(), length + 1);
- Tizen::Base::String description(pName);
- delete[] pName;
+ Tizen::Base::String description(pName.get());
return description;
}
ImageFeatureInfo::GetThumbnailN(void) const
{
int bufWidth = __pImageFeatureInfoImpl->GetThumbnailWidth();
+ SysTryReturn(NID_UIX, bufWidth > 0, null, E_FAILURE, "[%s] Failed to get thumbnail width.", GetErrorMessage(E_FAILURE));
+
int bufHeight = __pImageFeatureInfoImpl->GetThumbnailHeight();
+ SysTryReturn(NID_UIX, bufHeight > 0, null, E_FAILURE, "[%s] Failed to get thumbnail height.", GetErrorMessage(E_FAILURE));
- while ((bufWidth > 0) && (bufHeight > 0))
- {
- result res = E_FAILURE;
- Tizen::Base::ByteBuffer* outBuffer = new Tizen::Base::ByteBuffer();
- if (outBuffer == null)
- {
- break;
- }
- res = outBuffer->Construct(bufWidth * bufHeight);
- if (IsFailed(res))
- {
- break;
- }
- if (__pImageFeatureInfoImpl->GetThumbnail((char*)outBuffer->GetPointer(), bufWidth, bufHeight, false))
- {
- return outBuffer;
- }
- break;
- }
- return null;
+ std::unique_ptr<Tizen::Base::ByteBuffer> pOutBuffer(new (std::nothrow) Tizen::Base::ByteBuffer());
+ SysTryReturn(NID_UIX, pOutBuffer != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+ result res = pOutBuffer->Construct(bufWidth * bufHeight);
+ SysTryReturn(NID_UIX, res == E_SUCCESS, null, res, "[%s] Failed to construct ByteBuffer.", GetErrorMessage(res));
+
+ bool success = __pImageFeatureInfoImpl->GetThumbnail((char*)pOutBuffer->GetPointer(), bufWidth, bufHeight, false);
+ SysTryReturn(NID_UIX, success == true, null, E_FAILURE, "[%s] Failed to get thumbnail.", GetErrorMessage(E_FAILURE));
+
+ return pOutBuffer.release();
}
bool
{
SysAssertf(__pImageFeatureManagerImpl != null, "Not yet constructed! Consruct() should be called before use.");
- SysTryReturnResult(NID_UIX, !imagePath.IsEmpty(), E_INVALID_ARG,
+ SysTryReturn(NID_UIX, !imagePath.IsEmpty(), -1, E_INVALID_ARG,
"image path must not be empty. [E_INVALID_ARG]");
+ SysTryReturn(NID_UIX, Tizen::Io::File::IsFileExist(imagePath), -1, E_INVALID_ARG,
+ "image path must exist. [E_INVALID_ARG]");
+
+ Tizen::Io::FileAttributes _fileAtt;
+
+ SysTryReturn(NID_UIX, Tizen::Io::File::GetAttributes(imagePath, _fileAtt) == E_SUCCESS, -1, E_INVALID_ARG,
+ "image file must have attributes. [E_INVALID_ARG]");
+
+ SysTryReturn(NID_UIX, !_fileAtt.IsDirectory(), -1, E_INVALID_ARG,
+ "image file must exist. [E_INVALID_ARG]");
+
return (int) __pImageFeatureManagerImpl->AddFeature(imagePath);
}
{
SysAssertf(__pImageFeatureManagerImpl != null, "Not yet constructed! Consruct() should be called before use.");
- return __pImageFeatureManagerImpl->SaveDB(true, featureSetFilePath);
+ return __pImageFeatureManagerImpl->SaveDB(true, featureSetFilePath);
}
result
"feature set path must not be empty. [E_INVALID_ARG]");
SysTryReturnResult(NID_UIX, Tizen::Io::File::IsFileExist(featureSetFilePath), E_INVALID_ARG,
+ "feature set path must exist. [E_INVALID_ARG]");
+
+ Tizen::Io::FileAttributes _fileAtt;
+
+ SysTryReturnResult(NID_UIX, Tizen::Io::File::GetAttributes(featureSetFilePath, _fileAtt) == E_SUCCESS, E_INVALID_ARG,
+ "feature set file must have attributes. [E_INVALID_ARG]");
+
+ SysTryReturnResult(NID_UIX, !_fileAtt.IsDirectory(), E_INVALID_ARG,
"feature set file must exist. [E_INVALID_ARG]");
return __pImageFeatureManagerImpl->OpenDB(featureSetFilePath) ? E_SUCCESS : E_FAILURE;
Tizen::Base::Collection::IListT<Tizen::Media::ImageFormat>*
ImageFeatureManager::GetSupportedImageFileFormatsListN(void)
{
- Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat>* formatList = new Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat>;
- formatList->Add(Tizen::Media::IMG_FORMAT_BMP);
- formatList->Add(Tizen::Media::IMG_FORMAT_JPG);
- formatList->Add(Tizen::Media::IMG_FORMAT_PNG);
- return formatList;
+ std::unique_ptr<Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat> > pFormatList(new (std::nothrow) Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat>);
+ SysTryReturn(NID_UIX, pFormatList != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+ pFormatList->Add(Tizen::Media::IMG_FORMAT_BMP);
+ pFormatList->Add(Tizen::Media::IMG_FORMAT_JPG);
+ pFormatList->Add(Tizen::Media::IMG_FORMAT_PNG);
+ return pFormatList.release();
}
const Tizen::Uix::Vision::ImageFeatureInfo*
Tizen::Text::Utf8Encoding utf8;
__pQrCodeGeneratorImpl->Encode((char*) utf8.GetBytesN(message)->GetPointer(), mode, error_level, compatibility);
+
__pQrCodeGeneratorImpl->GetSize(width, height);
- Tizen::Base::ByteBuffer* buffer = new Tizen::Base::ByteBuffer;
- buffer->Construct(width * height);
+ std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(new (std::nothrow) Tizen::Base::ByteBuffer());
+ SysTryReturn(NID_UIX, pBuffer != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+ pBuffer->Construct(width * height);
- if (__pQrCodeGeneratorImpl->SaveToBuffer((unsigned char*) buffer->GetPointer()))
+ if (__pQrCodeGeneratorImpl->SaveToBuffer((unsigned char*) pBuffer->GetPointer()))
{
- return buffer;
+ return pBuffer.release();
}
else
{
- delete buffer;
return null;
}
Tizen::Base::Collection::IListT<Tizen::Media::ImageFormat>*
QrCodeGenerator::GetSupportedImageFileFormatsListN(void)
{
- Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat>* formatList = new Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat>;
- formatList->Add(Tizen::Media::IMG_FORMAT_BMP);
- formatList->Add(Tizen::Media::IMG_FORMAT_JPG);
- formatList->Add(Tizen::Media::IMG_FORMAT_PNG);
- return formatList;
+ std::unique_ptr<Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat> > pFormatList(
+ new (std::nothrow) Tizen::Base::Collection::ArrayListT<Tizen::Media::ImageFormat>);
+ SysTryReturn(NID_UIX, pFormatList != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+
+ pFormatList->Add(Tizen::Media::IMG_FORMAT_BMP);
+ pFormatList->Add(Tizen::Media::IMG_FORMAT_JPG);
+ pFormatList->Add(Tizen::Media::IMG_FORMAT_PNG);
+ return pFormatList.release();
}
} } } //Tizen::Uix::Vision
_ImageFeatureInfoImpl::GetThumbnail(char* outBuffer, int bufWidth, int bufHeight, bool fit) const
{
return __imageFeatureDatabaseInfo.getThumbnailImage(outBuffer, bufWidth, bufHeight, fit);
-
- //Code for using in next arengine version
- /*
- char* tempBuffer = new char[bufWidth * bufHeight * 4];
- bool res = __imageFeatureDatabaseInfo.getThumbnailImage(tempBuffer, bufWidth, bufHeight, fit);
-
- if(!res)
- {
- delete[] tempBuffer;
- return false;
- }
-
- Tizen::Media::ImageBuffer imBuf;
- result r = imBuf.Construct(bufWidth, bufHeight, Tizen::Media::MEDIA_PIXEL_FORMAT_BGRA8888, (byte*)tempBuffer, bufWidth * bufHeight * 4);
- delete[] tempBuffer;
- if(IsFailed(r))
- {
- return false;
- }
-
- Tizen::Base::ByteBuffer* yuvBuf = imBuf.GetByteBufferN(Tizen::Media::MEDIA_PIXEL_FORMAT_YUV420P);
- if(yuvBuf == null)
- {
- return false;
- }
-
- memcpy(outBuffer, yuvBuf->GetPointer(), bufWidth * bufHeight);
- delete yuvBuf;
-
- return true;
- */
-
}
Tizen::Uix::Vision::ImageFeatureInfo*
_ImageFeatureManagerImpl::_ImageFeatureManagerImpl(void)
: __imageFeatureManager(0)
- , __readOnly(false)
+ , __readOnly(false)
{
}
_ImageFeatureManagerImpl::AddFeature(const unsigned char* data, int width, int height, const Tizen::Base::String& info)
{
if (!__imageFeatureManager)
- {
+ {
return -1;
- }
+ }
Tizen::Text::Utf8Encoding utf8;
int index = (int) __imageFeatureManager->addImageToDB(data, width, height, (char*) utf8.GetBytesN(info)->GetPointer());
_ImageFeatureManagerImpl::DeleteFeature(int index)
{
if (!__imageFeatureManager)
- {
+ {
return false;
- }
+ }
- int realIndex(0);
- __indices.GetAt(index,realIndex);
- if (__imageFeatureManager->deleteImageFromDB(realIndex))
+ if (index < __indices.GetCount() && index >= 0)
{
- __indices.RemoveAt(index);
- return true;
+ int realIndex(0);
+ __indices.GetAt(index, realIndex);
+ if (__imageFeatureManager->deleteImageFromDB(realIndex))
+ {
+ __indices.RemoveAt(index);
+ return true;
+ }
}
+ else
+ {
+ SetLastResult(E_INVALID_ARG);
+ }
+
return false;
}
result result = E_FAILURE;
if (!__imageFeatureManager)
- {
+ {
return E_FAILURE;
- }
+ }
if (null != dbPath)
{
Tizen::Text::Utf8Encoding utf8;
result = __imageFeatureManager->saveDB(optimizeDatabase, (const char*) utf8.GetBytesN(__path)->GetPointer()) ? E_SUCCESS : E_FAILURE;
- if (E_FAILURE == result && __readOnly)
- {
- result = E_INVALID_ARG;
- }
+ if (E_FAILURE == result && __readOnly)
+ {
+ result = E_INVALID_ARG;
+ }
}
}
return result;
+
}
bool
__imageFeatureManager->initDB();
Tizen::Text::Utf8Encoding utf8;
- switch (__imageFeatureManager->openDB((const char*) utf8.GetBytesN(dbpath)->GetPointer()))
- {
- case 0: //ok
- __path = dbpath;
- UpdateFeatureIndices();
- break;
- case -2: //read only feature set file
+ switch (__imageFeatureManager->openDB((const char*) utf8.GetBytesN(dbpath)->GetPointer()))
+ {
+ case 0: //ok
__path = dbpath;
UpdateFeatureIndices();
- __readOnly = true;
- break;
- default: //error
+ break;
+ case -2: //read only feature set file
__path = dbpath;
UpdateFeatureIndices();
- }
+ __readOnly = true;
+ break;
+ default: //error
+ return false;
+ }
return true;
}
_ImageFeatureManagerImpl::ReleaseDB(void)
{
if (!__imageFeatureManager)
- {
+ {
return;
- }
+ }
__imageFeatureManager->releaseDB();
__indices.RemoveAll();
_ImageFeatureManagerImpl::GetImageFeatureInfo(int index)
{
if (!__imageFeatureManager)
- {
+ {
return null;
- }
+ }
- Tizen::Uix::Vision::ImageFeatureInfo* di = _ImageFeatureInfoImpl::CreateImageFeatureInfoN();
- int realIndex(0);
- __indices.GetAt(index, realIndex);
- _ImageFeatureInfoImpl::GetInstance(di)->SetSariPointer(sari2::ImageFeatureInfo(__imageFeatureManager, realIndex));
- return di;
+ if (index < __indices.GetCount() && index >= 0)
+ {
+ Tizen::Uix::Vision::ImageFeatureInfo* di = _ImageFeatureInfoImpl::CreateImageFeatureInfoN();
+ int realIndex(0);
+ __indices.GetAt(index, realIndex);
+ _ImageFeatureInfoImpl::GetInstance(di)->SetSariPointer(sari2::ImageFeatureInfo(__imageFeatureManager, realIndex));
+ return di;
+ }
+ else
+ {
+ SetLastResult(E_INVALID_ARG);
+ return null;
+ }
}
void
__indices.RemoveAll();
if (!__imageFeatureManager)
- {
+ {
return;
- }
+ }
int total = __imageFeatureManager->totalNumberOfImages();
for (int i = 0; i < total; i++)
__qrCodeObject.rectangle(coordinates);
for (int i = 0; i < 4; ++i)
+ {
__pRectangleList->Add(Tizen::Graphics::FloatPoint(coordinates[2 * i], coordinates[(2 * i) + 1]));
+ }
return __pRectangleList;
_QrCodeRecognizerImpl::~_QrCodeRecognizerImpl(void)
{
- _QrCodeObjectImpl::ReleaseQrCodeObjectArray(__objectStorage);
+ _QrCodeObjectImpl::ReleaseQrCodeObjectArray(__objectStorage);
}
bool
else
{
SetLastResult(E_INVALID_ARG);
- return 0;
+ return null;
}
}