mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-06-14 08:17:13 +02:00
22 lines
640 B
C++
22 lines
640 B
C++
|
|
#include "aare/NumpyFile.hpp"
|
|
|
|
NumpyFile::NumpyFile(std::filesystem::path fname_){
|
|
this->fname = fname_;
|
|
fp = fopen(this->fname.c_str(), "rb");
|
|
}
|
|
|
|
Frame* NumpyFile::get_frame(size_t frame_number) {
|
|
if (fp == nullptr) {
|
|
throw std::runtime_error("File not open");
|
|
}
|
|
if (frame_number > header.shape[0]) {
|
|
throw std::runtime_error("Frame number out of range");
|
|
}
|
|
Frame *frame = new Frame(header.shape[1], header.shape[2], header.dtype.itemsize*8);
|
|
fseek(fp, header_size + frame_number * bytes_per_frame(), SEEK_SET);
|
|
fread(frame->_get_data(), bytes_per_frame(), 1, fp);
|
|
return frame;
|
|
}
|
|
|