23 lines
821 B
C++
23 lines
821 B
C++
#include "../BgraFrame.h"
|
|
#include "../../Common/3dParty/heif/libheif/libheif/api/libheif/heif.h"
|
|
#include "../../UnicodeConverter/UnicodeConverter.h"
|
|
|
|
namespace NSHeif {
|
|
class GRAPHICS_DECL CHeifFile {
|
|
private:
|
|
CHeifFile() = delete;
|
|
public:
|
|
static bool isHeif(const std::wstring& fileName);
|
|
static bool isHeif(BYTE* buffer, DWORD size);
|
|
|
|
static bool Open(CBgraFrame* frame, const std::wstring& fileName, bool isRGBA);
|
|
static bool Open(CBgraFrame* frame, BYTE* buffer, DWORD size, bool isRGBA);
|
|
static bool Save(const BYTE* source, int width, int height, int sourceStride, const std::wstring& dstPath, bool isRGBA);
|
|
|
|
private:
|
|
static bool IsError(heif_error err);
|
|
static bool Decode(heif_context* ctx, CBgraFrame* frame, bool isRGBA);
|
|
static NSUnicodeConverter::CUnicodeConverter m_oConverter;
|
|
};
|
|
}
|