ky = in->HeaderLength.y/out->HeaderLength.y;
kz = in->HeaderLength.z/out->HeaderLength.z;
- out->HeaderN.x = in->HeaderN.x*kx;
- out->HeaderN.y = in->HeaderN.y*ky;
- out->HeaderN.z = in->HeaderN.z*kz;
+ if(1<in->HeaderN.x) {
+ out->HeaderN.x = in->HeaderN.x*kx;
+ } else {
+ out->HeaderN.x = 1;
+ }
+ if(1<in->HeaderN.y) {
+ out->HeaderN.y = in->HeaderN.y*ky;
+ } else {
+ out->HeaderN.y = 1;
+ }
+ if(1<in->HeaderN.z) {
+ out->HeaderN.z = in->HeaderN.z*kz;
+ } else {
+ out->HeaderN.z = 1;
+ }
out->HeaderStartN.x = in->HeaderStartN.x*in->HeaderLength.x/out->HeaderLength.x;
out->HeaderStartN.y = in->HeaderStartN.y*in->HeaderLength.y/out->HeaderLength.y;
out->HeaderStartN.z = in->HeaderStartN.z*in->HeaderLength.z/out->HeaderLength.z;
mrcInit(out, NULL);
+ for(z=0; z<out->HeaderN.z; z++) {
+ for(y=0; y<out->HeaderN.y; y++) {
for(x=0; x<out->HeaderN.x; x++) {
- for(y=0; y<out->HeaderN.y; y++) {
- for(z=0; z<out->HeaderN.z; z++) {
- mrcPixelDataGet(in, x/kx, y/ky, z/kz, &data, mrcPixelRePart, info.SamplingMethodMode);
- mrcPixelDataSet(out, x, y, z, data, mrcPixelRePart);
- }
- }
+ mrcPixelDataGet(in, x/kx, y/ky, z/kz, &data, mrcPixelRePart, info.SamplingMethodMode);
+ mrcPixelDataSet(out, x, y, z, data, mrcPixelRePart);
+ }
+ }
}
}