Пример #1
0
 private int GetImgByteCountChange(FrameInfo frameMetadataOfFrameEditing, FrameInfo newFrameMetadata, int newPixelDataLength)
 {
     // old byte count + imgByteCountChange = new byte count
     if (frameMetadataOfFrameEditing.PixelFormat == PixelDataFormat.Link && newFrameMetadata.PixelFormat == PixelDataFormat.Link)
     {
         // If frame going from link to link, .img file is same length
         return(0);
     }
     else if (frameMetadataOfFrameEditing.PixelFormat != PixelDataFormat.Link && newFrameMetadata.PixelFormat == PixelDataFormat.Link)
     {
         // Going from non-link to link
         // old length is pixel data length + metadata of 36 bytes
         // new length is 0 + metadata of 8 bytes
         return(8 - (frameMetadataOfFrameEditing.GetPixelDataLength() + 36));
     }
     else if (frameMetadataOfFrameEditing.PixelFormat == PixelDataFormat.Link && newFrameMetadata.PixelFormat != PixelDataFormat.Link)
     {
         // Going from link to non-link
         // old length is 0 + metadata of 8 bytes
         // new length is newPixelDataLength + metadata of 36 bytes
         return((newPixelDataLength + 36) - 8);
     }
     else
     {
         // Going from non-link to non-link
         // Metadata is still 36 bytes
         // difference is difference in pixel data
         return(newPixelDataLength - frameMetadataOfFrameEditing.GetPixelDataLength());
     }
 }