rendered paste body/** Reconstruct the image which was Haar-transformed */
void Image::reconstruct(const size_t& level){
const size_t imageHeight = this->_header.height;
const size_t imageWidth = this->_header.width;
//Start settings:
size_t widthToTransform=imageWidth;
size_t heightToTransform=imageHeight;
for (size_t i=1;i<level;++i){
widthToTransform/=2;
heightToTransform/=2;
}
size_t heightStart=imageHeight-heightToTransform;
//Reconstruction in steps
for (size_t f=0;f<level;++f){
//Columns
for(size_t i=0;i<widthToTransform;++i){ //x-direction
for (size_t j=0;j<(heightToTransform/2);++j){ //y-direction
int d=this->_pixels[heightStart*imageWidth+i+j*imageWidth];
int s=this->_pixels[heightStart*imageWidth+(heightToTransform/2)*imageWidth+i+j*imageWidth];
this->_pixels[heightStart*imageWidth+i+j*imageWidth]=s-d;
this->_pixels[heightStart*imageWidth+i+(j+1)*imageWidth]=s+d;
}
}
//Rows
for(size_t i=0;i<heightToTransform;++i){ //y-direction
for (size_t j=0;j<(widthToTransform/2);++j){ //x-direction
int d=this->_pixels[heightStart*imageWidth+i*imageWidth+j];
int s=this->_pixels[heightStart*imageWidth+i*imageWidth+(widthToTransform/2)+j];
this->_pixels[heightStart*imageWidth+i*imageWidth+j]=s+d;
this->_pixels[heightStart*imageWidth+i*imageWidth+j+1]=s-d;
}
}
widthToTransform*=2;
heightToTransform*=2;
heightStart=imageHeight-heightToTransform;
}
}