private static ItemDataBox CreateItemDataBox(ImageGridMetadata imageGridMetadata, IByteArrayPool arrayPool) { ImageGridDescriptor imageGridDescriptor = new ImageGridDescriptor(imageGridMetadata); byte[] dataBoxBuffer = new byte[imageGridDescriptor.GetSize()]; MemoryStream stream = null; try { stream = new MemoryStream(dataBoxBuffer); using (BigEndianBinaryWriter writer = new BigEndianBinaryWriter(stream, leaveOpen: false, arrayPool)) { stream = null; // The ImageGridDescriptor is shared between the color and alpha image. imageGridDescriptor.Write(writer); } } finally { stream?.Dispose(); } return(new ItemDataBox(dataBoxBuffer)); }
public ImageGridInfo TryGetImageGridInfo(uint itemId) { ImageGridDescriptor gridDescriptor = TryGetImageGridDescriptor(itemId); if (gridDescriptor != null) { IItemReferenceEntry derivedImageProperty = GetMatchingReferences(itemId, ReferenceTypes.DerivedImage).First(); return(new ImageGridInfo(derivedImageProperty.ToItemIds, gridDescriptor)); } return(null); }