bool FileFormatInstance::ReadColorFilterArray( ColorFilterArray& cfa ) { try { cfa = ColorFilterArray(); if ( (*API->FileFormat->BeginColorFilterArrayExtraction)( handle ) == api_false ) return false; size_type patternLen = 0, nameLen = 0; (*API->FileFormat->GetImageColorFilterArray)( handle, 0, &patternLen, 0, 0, 0, &nameLen ); bool ok = true; if ( patternLen > 0 ) { IsoString pattern; pattern.SetLength( patternLen ); String name; if ( nameLen > 0 ) name.SetLength( nameLen ); int32 width, height; ok = (*API->FileFormat->GetImageColorFilterArray)( handle, pattern.Begin(), &patternLen, &width, &height, name.Begin(), &nameLen ) != api_false; if ( ok ) { pattern.ResizeToNullTerminated(); name.ResizeToNullTerminated(); cfa = ColorFilterArray( pattern, width, height, name ); } } (*API->FileFormat->EndColorFilterArrayExtraction)( handle ); return ok; } catch ( ... ) { (*API->FileFormat->EndColorFilterArrayExtraction)( handle ); throw; } }
void FileFormatImplementation::EndColorFilterArrayEmbedding() { if ( !m_data->colorFilterArray.IsEmpty() ) WriteColorFilterArray( m_data->colorFilterArray ); m_data->colorFilterArray = ColorFilterArray(); }
void FileFormatImplementation::BeginColorFilterArrayEmbedding() { BeginPrivate(); m_data->colorFilterArray = ColorFilterArray(); }
void FileFormatImplementation::EndColorFilterArrayExtraction() { m_data->colorFilterArray = ColorFilterArray(); }
ColorFilterArray FileFormatImplementation::ReadColorFilterArray() { MANDATORY( "ReadColorFilterArray" ); return ColorFilterArray(); }