public byte[] Decode(byte[] input, PdfDictionary streamDictionary, int filterIndex) { if (input == null) { throw new ArgumentNullException(nameof(input)); } var parameters = decodeParameterResolver.GetFilterParameters(streamDictionary, filterIndex); var predictor = parameters.GetIntOrDefault(CosName.PREDICTOR); try { var decompressed = Decompress(input); if (predictor == -1) { return(decompressed); } var colors = Math.Min(parameters.GetIntOrDefault(CosName.COLORS, DefaultColors), 32); var bitsPerComponent = parameters.GetIntOrDefault(CosName.BITS_PER_COMPONENT, DefaultBitsPerComponent); var columns = parameters.GetIntOrDefault(CosName.COLUMNS, DefaultColumns); var result = pngPredictor.Decode(decompressed, predictor, colors, bitsPerComponent, columns); return(result); } catch (Exception ex) { log.Error("Could not decode a flate stream due to an error.", ex); } return(input); }
/// <inheritdoc /> public byte[] Decode(IReadOnlyList <byte> input, DictionaryToken streamDictionary, int filterIndex) { var parameters = decodeParameterResolver.GetFilterParameters(streamDictionary, filterIndex); var predictor = parameters.GetIntOrDefault(NameToken.Predictor, -1); var earlyChange = parameters.GetIntOrDefault(NameToken.EarlyChange, 1); if (predictor > 1) { var decompressed = Decode(input, earlyChange == 1); var colors = Math.Min(parameters.GetIntOrDefault(NameToken.Colors, DefaultColors), 32); var bitsPerComponent = parameters.GetIntOrDefault(NameToken.BitsPerComponent, DefaultBitsPerComponent); var columns = parameters.GetIntOrDefault(NameToken.Columns, DefaultColumns); var result = pngPredictor.Decode(decompressed, predictor, colors, bitsPerComponent, columns); return(result); } var data = Decode(input, earlyChange == 1); return(data); }
public byte[] Decode(IReadOnlyList <byte> input, DictionaryToken streamDictionary, int filterIndex) { if (input == null) { throw new ArgumentNullException(nameof(input)); } var parameters = decodeParameterResolver.GetFilterParameters(streamDictionary, filterIndex); var predictor = parameters.GetIntOrDefault(NameToken.Predictor, -1); var bytes = input.ToArray(); try { var decompressed = Decompress(bytes); if (predictor == -1) { return(decompressed); } var colors = Math.Min(parameters.GetIntOrDefault(NameToken.Colors, DefaultColors), 32); var bitsPerComponent = parameters.GetIntOrDefault(NameToken.BitsPerComponent, DefaultBitsPerComponent); var columns = parameters.GetIntOrDefault(NameToken.Columns, DefaultColumns); var result = pngPredictor.Decode(decompressed, predictor, colors, bitsPerComponent, columns); return(result); } catch (Exception ex) { log.Error("Could not decode a flate stream due to an error.", ex); } return(bytes); }