1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.imaging.formats.gif;
18
19 import java.io.ByteArrayOutputStream;
20 import java.io.IOException;
21 import java.util.List;
22
23 final class GenericGifBlock extends GifBlock {
24 final List<byte[]> subBlocks;
25
26 GenericGifBlock(final int blockCode, final List<byte[]> subBlocks) {
27 super(blockCode);
28
29 this.subBlocks = subBlocks;
30
31 }
32
33 public byte[] appendSubBlocks() throws IOException {
34 return appendSubBlocks(false);
35 }
36
37 public byte[] appendSubBlocks(final boolean includeLengths) throws IOException {
38 final ByteArrayOutputStream out = new ByteArrayOutputStream();
39
40 for (int i = 0; i < subBlocks.size(); i++) {
41 final byte[] subBlock = subBlocks.get(i);
42 if (includeLengths && i > 0) {
43 out.write(subBlock.length);
44 }
45 out.write(subBlock);
46 }
47
48 return out.toByteArray();
49 }
50
51 }