code_app/modules/imgfmt/HGOfd.cpp

173 lines
4.0 KiB
C++
Raw Permalink Normal View History

2022-05-03 10:25:52 +00:00
#include "HGOfd.h"
#include "HGOfdImpl.hpp"
HGResult HGAPI HGImgFmt_CheckOfdFile(const HGChar* fileName, HGBool* isOfd)
{
if (NULL == fileName || NULL == isOfd)
{
return HGBASE_ERR_INVALIDARG;
}
HGOfdReader reader = NULL;
2022-11-26 02:42:06 +00:00
HGResult ret = HGImgFmt_OpenOfdReader(fileName, &reader);
if (HGBASE_ERR_OK != ret)
2022-05-03 10:25:52 +00:00
{
2022-11-26 02:42:06 +00:00
return ret;
2022-05-03 10:25:52 +00:00
}
2022-11-26 02:42:06 +00:00
*isOfd = HGTRUE;
HGImgFmt_CloseOfdReader(reader);
return ret;
2022-05-03 10:25:52 +00:00
}
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_LoadOfdImage(const HGChar* fileName, HGOfdPageInfo* info, HGUInt imgType, HGUInt imgOrigin, HGImage* image)
{
HGOfdReader reader = NULL;
HGResult ret = HGImgFmt_OpenOfdReader(fileName, &reader);
if (HGBASE_ERR_OK != ret)
{
return ret;
}
if (HGBASE_ERR_OK == ret && NULL != info)
ret = HGImgFmt_GetOfdPageInfo(reader, 0, info);
if (HGBASE_ERR_OK == ret && NULL != image)
ret = HGImgFmt_LoadImageFromOfdReader(reader, 0, 1.0f, 1.0f, imgType, imgOrigin, image);
HGImgFmt_CloseOfdReader(reader);
return ret;
}
2022-05-03 10:25:52 +00:00
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)
2022-05-03 10:25:52 +00:00
{
if (NULL == writer)
{
return HGBASE_ERR_INVALIDARG;
}
HGOfdImageWriterImpl* ofdImageWriterImpl = (HGOfdImageWriterImpl*)writer;
return ofdImageWriterImpl->SaveJpegImage(image, info);
}
HGResult HGAPI HGImgFmt_SaveOfdJpegImage(HGImage image, const HGJpegSaveInfo* info, const HGChar* fileName)
{
HGOfdImageWriter writer = NULL;
HGResult ret = HGImgFmt_OpenOfdImageWriter(fileName, &writer);
if (HGBASE_ERR_OK != ret)
{
return ret;
}
ret = HGImgFmt_SaveJpegImageToOfdImageWriter(writer, image, info);
HGImgFmt_CloseOfdImageWriter(writer);
return ret;
2022-05-03 10:25:52 +00:00
}