CelFileWriter::CelFileWriter(CelFileData &p) { p.SetVersion(CurrentCelFileVersion); writer = new GenericFileWriter(p.GetFileHeader()); intensityPos = 0; stdDevPos = 0; pixelPos = 0; outlierPos = 0; maskPos = 0; WriteHeaders(); }
/* * Get the DAT header from the DAT file header object. */ string CELConversionUtilities::GetDatHeader(CelFileData &inFile) { std::wstring datHeader; GenDataHdrVectorIt begin, end; inFile.GetFileHeader()->GetGenericDataHdr()->GetParentIterators(begin, end); // Find the DAT generic header for (GenDataHdrVectorIt ii = begin; ii != end; ++ii) { std::string s = ii->GetFileTypeId(); if (ii->GetFileTypeId() == SCAN_ACQUISITION_DATA_TYPE) { // found the right header, now look for the parameter ParameterNameValueType nvt; if (ii->FindNameValParam(DAT_HEADER_PARAM_NAME, nvt)) { if (nvt.GetParameterType() == ParameterNameValueType::TextType) datHeader = nvt.GetValueText(); } else if (ii->FindNameValParam(PARTIAL_DAT_HEADER_PARAM_NAME, nvt)) { if (nvt.GetParameterType() == ParameterNameValueType::TextType) { std::wstring partialDatHeader = nvt.GetValueText(); u_int16_t min = 0; u_int16_t max = 0; // Find the max and min parameters and append to the string. if (ii->FindNameValParam(MAX_PIXEL_INTENSITY_PARAM_NAME, nvt)) { if (nvt.GetParameterType() == ParameterNameValueType::UInt16Type) max = nvt.GetValueUInt16(); } if (ii->FindNameValParam(MIN_PIXEL_INTENSITY_PARAM_NAME, nvt)) { if (nvt.GetParameterType() == ParameterNameValueType::UInt16Type) min = nvt.GetValueUInt16(); } wchar_t buf[30]; FormatString2(buf, 30, L"[%d..%d]", min, max); datHeader = buf; datHeader += partialDatHeader; } } break; } } return StringUtils::ConvertWCSToMBS(datHeader); }