139 lines
3.1 KiB
C++
139 lines
3.1 KiB
C++
#include "HGOfd.h"
|
|
#include "HGOfdImpl.hpp"
|
|
|
|
HGResult HGAPI HGImgFmt_CheckOfdFile(const HGChar* fileName, HGBool* isOfd)
|
|
{
|
|
if (NULL == fileName || NULL == isOfd)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
*isOfd = HGFALSE;
|
|
HGOfdReader reader = NULL;
|
|
HGImgFmt_OpenOfdReader(fileName, &reader);
|
|
if (NULL != reader)
|
|
{
|
|
*isOfd = HGTRUE;
|
|
HGImgFmt_CloseOfdReader(reader);
|
|
}
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_OpenOfdReader(const HGChar* fileName, HGOfdReader* reader)
|
|
{
|
|
if (NULL == fileName || NULL == reader)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdReaderImpl* ofdReaderImpl = new HGOfdReaderImpl;
|
|
HGResult ret = ofdReaderImpl->Open(fileName);
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
delete ofdReaderImpl;
|
|
return ret;
|
|
}
|
|
|
|
*reader = (HGOfdReader)ofdReaderImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_CloseOfdReader(HGOfdReader reader)
|
|
{
|
|
if (NULL == reader)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdReaderImpl* ofdReaderImpl = (HGOfdReaderImpl *)reader;
|
|
HGResult ret = ofdReaderImpl->Close();
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
return ret;
|
|
}
|
|
|
|
delete ofdReaderImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_GetOfdPageCount(HGOfdReader reader, HGUInt* count)
|
|
{
|
|
if (NULL == reader)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdReaderImpl* ofdReaderImpl = (HGOfdReaderImpl*)reader;
|
|
return ofdReaderImpl->GetPageCount(count);
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_GetOfdPageInfo(HGOfdReader reader, HGUInt page, HGOfdPageInfo* info)
|
|
{
|
|
if (NULL == reader)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdReaderImpl* ofdReaderImpl = (HGOfdReaderImpl*)reader;
|
|
return ofdReaderImpl->GetPageInfo(page, info);
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_LoadImageFromOfdReader(HGOfdReader reader, HGUInt page, HGFloat xScale, HGFloat yScale,
|
|
HGUInt imgType, HGUInt imgOrigin, HGImage* image)
|
|
{
|
|
if (NULL == reader)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdReaderImpl* ofdReaderImpl = (HGOfdReaderImpl*)reader;
|
|
return ofdReaderImpl->LoadImage(page, xScale, yScale, imgType, imgOrigin, image);
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_OpenOfdImageWriter(const HGChar* fileName, HGOfdImageWriter* writer)
|
|
{
|
|
if (NULL == fileName || NULL == writer)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdImageWriterImpl* ofdImageWriterImpl = new HGOfdImageWriterImpl;
|
|
HGResult ret = ofdImageWriterImpl->Open(fileName);
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
delete ofdImageWriterImpl;
|
|
return ret;
|
|
}
|
|
|
|
*writer = (HGOfdImageWriter)ofdImageWriterImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_CloseOfdImageWriter(HGOfdImageWriter writer)
|
|
{
|
|
if (NULL == writer)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdImageWriterImpl* ofdImageWriterImpl = (HGOfdImageWriterImpl*)writer;
|
|
HGResult ret = ofdImageWriterImpl->Close();
|
|
if (HGBASE_ERR_OK != ret)
|
|
{
|
|
return ret;
|
|
}
|
|
|
|
delete ofdImageWriterImpl;
|
|
return HGBASE_ERR_OK;
|
|
}
|
|
|
|
HGResult HGAPI HGImgFmt_SaveJpegImageToOfdImageWriter(HGOfdImageWriter writer, HGImage image, const HGJpegSaveInfo* info)
|
|
{
|
|
if (NULL == writer)
|
|
{
|
|
return HGBASE_ERR_INVALIDARG;
|
|
}
|
|
|
|
HGOfdImageWriterImpl* ofdImageWriterImpl = (HGOfdImageWriterImpl*)writer;
|
|
return ofdImageWriterImpl->SaveJpegImage(image, info);
|
|
} |