Skip to content
Snippets Groups Projects
Commit 6ca071c9 authored by Vojtech Moravec's avatar Vojtech Moravec
Browse files

Fix incorrect calculation of compressed data size.

parent f646ad19
Branches
No related tags found
No related merge requests found
package azgracompress.compression; package azgracompress.compression;
import azgracompress.U16;
import azgracompress.cache.ICacheFile; import azgracompress.cache.ICacheFile;
import azgracompress.compression.exception.ImageCompressionException; import azgracompress.compression.exception.ImageCompressionException;
import azgracompress.data.Range; import azgracompress.data.Range;
import azgracompress.fileformat.QCMPFileHeader; import azgracompress.fileformat.QCMPFileHeader;
import azgracompress.io.InputData; import azgracompress.io.InputData;
import azgracompress.utilities.Utils;
import java.io.*; import java.io.*;
import java.util.Arrays; import java.util.Arrays;
...@@ -90,12 +92,11 @@ public class ImageCompressor extends CompressorDecompressorBase { ...@@ -90,12 +92,11 @@ public class ImageCompressor extends CompressorDecompressorBase {
try (DataOutputStream compressStream = new DataOutputStream(new BufferedOutputStream(outputStream, 8192))) { try (DataOutputStream compressStream = new DataOutputStream(new BufferedOutputStream(outputStream, 8192))) {
final long[] chunkSizes = imageCompressor.compressStreamMode(compressStream); final long[] chunkSizes = imageCompressor.compressStreamMode(compressStream);
for (final long chunkSize : chunkSizes) { for (final long chunkSize : chunkSizes) {
assert (chunkSize < Integer.MAX_VALUE); assert (chunkSize < U16.Max);
compressStream.writeInt((int) chunkSize); compressStream.writeShort((int) chunkSize);
compressStream.writeInt((int) chunkSize);
} }
return (int) Arrays.stream(chunkSizes).sum() + (3 * 2) + (chunkSizes.length * 4); return (4 * 2) + ((int) Arrays.stream(chunkSizes).sum()) + (chunkSizes.length * 2);
} catch (ImageCompressionException ice) { } catch (ImageCompressionException ice) {
System.err.println(ice.getMessage()); System.err.println(ice.getMessage());
return -1; return -1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment