Adjusted workflow.
This commit is contained in:
51
include/ehs/io/img/PNG.h
Normal file
51
include/ehs/io/img/PNG.h
Normal file
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
|
||||
#include "ehs/EHS.h"
|
||||
#include "ehs/Serializer.h"
|
||||
#include "PNG_Chunk.h"
|
||||
#include "Img.h"
|
||||
|
||||
namespace ehs
|
||||
{
|
||||
class PNG
|
||||
{
|
||||
private:
|
||||
Str_8 id;
|
||||
UInt_64 hashId;
|
||||
Array<PNG_Chunk> chunks;
|
||||
|
||||
public:
|
||||
PNG();
|
||||
|
||||
PNG(const Str_8& filePath);
|
||||
|
||||
PNG(const Str_8& id, Serializer<UInt_64>& data);
|
||||
|
||||
PNG(const PNG& png);
|
||||
|
||||
PNG& operator=(const PNG& png);
|
||||
|
||||
bool HasChunk(const UInt_64 hashId) const;
|
||||
|
||||
bool HasChunk(const Str_8& id) const;
|
||||
|
||||
PNG_Chunk* GetChunk(const UInt_64 hashId);
|
||||
|
||||
PNG_Chunk* GetChunk(const Str_8& id);
|
||||
|
||||
static bool IsPNG(Serializer<UInt_32>& data);
|
||||
|
||||
static void FilterNone(const Byte* const in, Byte* const out, const UInt_8 bitDepth, const UInt_8 channels, const UInt_32 scanline);
|
||||
|
||||
static void FilterSub(const Byte* const in, Byte* const out, const UInt_8 bitDepth, const UInt_8 channels, const UInt_32 scanline);
|
||||
|
||||
static void FilterUp(const Byte* const in, Byte* const out, const UInt_8 bitDepth, const UInt_8 channels, const UInt_32 scanline);
|
||||
|
||||
static void FilterAverage(const Byte* const in, Byte* const out, const UInt_8 bitDepth, const UInt_8 channels, const UInt_32 scanline);
|
||||
|
||||
static void FilterPaeth(const Byte* const in, Byte* const out, const UInt_8 bitDepth, const UInt_8 channels, const UInt_32 scanline);
|
||||
|
||||
private:
|
||||
static Byte PaethPredictor(const Byte a, const Byte b, const Byte c);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user