datasplitter/ImageSplitter.hpp¶
Namespaces¶
| Name |
|---|
| sgns |
| sgns::sgprocessing Artifact and manifest binary serialization. |
Classes¶
| Name | |
|---|---|
| class | sgns::sgprocessing::ImageSplitter |
Source code¶
#include <vector>
#include <openssl/evp.h>
#include <cstring>
//#include <libp2p/multi/content_identifier_codec.hpp>
namespace sgns::sgprocessing
{
class ImageSplitter
{
public:
ImageSplitter() = default;
ImageSplitter( const char *filename,
uint64_t blockstride,
uint64_t blocklinestride,
uint64_t blocklen,
int channels );
ImageSplitter( const std::vector<char> &buffer,
uint64_t blockstride,
uint64_t blocklinestride,
uint64_t blocklen,
int channels );
ImageSplitter( const std::vector<uint8_t> &buffer,
uint64_t blockstride,
uint64_t blocklinestride,
uint64_t blocklen,
int channels );
~ImageSplitter()
{
//free(inputImage);
}
std::vector<uint8_t> GetPart( int part );
size_t GetPartByCid( const std::vector<uint8_t> &cid ) const;
uint32_t GetPartSize( int part ) const;
uint32_t GetPartStride( int part ) const;
int GetPartWidthActual( int part ) const;
int GetPartHeightActual( int part ) const;
size_t GetPartCount() const;
size_t GetImageSize() const;
std::vector<uint8_t> GetPartCID( int part ) const;
private:
void SplitImageData();
std::vector<std::vector<uint8_t>> splitparts_;
int partwidth_ = 32;
int partheight_ = 32;
uint64_t blockstride_;
uint64_t blocklinestride_;
uint64_t blocklen_;
int channels_;
const unsigned char *inputImage;
uint64_t imageSize;
std::vector<int> chunkWidthActual_;
std::vector<int> chunkHeightActual_;
std::vector<std::vector<uint8_t>> cids_;
};
}
Updated on 2026-09-17 at 06:29:15 +0000