tiny.pdf.FilterPredictor
Defined in tiny.pdf.
API (7)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/pdf/src/filter/model.zig:24
zig
pub const Predictor = struct { predictor: u32 = 1, colors: u32 = 1, bits: u32 = 8, columns: u32 = 1, pub fn fromDict(dict: object.Dict) DecodeError!Predictor { return .{ .predictor = try directUnsigned(dict, "Predictor", 1), .colors = try directUnsigned(dict, "Colors", 1), .bits = try directUnsigned(dict, "BitsPerComponent", 8), .columns = try directUnsigned(dict, "Columns", 1), }; } pub fn rowLength(self: Predictor) DecodeError!usize { if (self.columns == 0 or self.colors == 0) return error.DecodeFailed; const valid_bits = self.bits == 1 or self.bits == 2 or self.bits == 4 or self.bits == 8 or self.bits == 16; if (!valid_bits) return error.DecodeFailed; const channel_bits = std.math.mul(u64, self.colors, self.bits) catch return error.DecodeFailed; const row_bits = std.math.mul(u64, self.columns, channel_bits) catch return error.DecodeFailed; return std.math.cast(usize, (row_bits + 7) / 8) orelse error.DecodeFailed; } pub fn sampleLength(self: Predictor) DecodeError!usize { const sample_bits = std.math.mul(u64, self.colors, self.bits) catch return error.DecodeFailed; const bytes = std.math.cast(usize, (sample_bits + 7) / 8) orelse return error.DecodeFailed; return @max(1, bytes); } fn directUnsigned(dict: object.Dict, key: []const u8, default: u32) DecodeError!u32 { const value = dict.get(key) orelse return default; return switch (value) { .integer => |raw| if (raw >= 0 and raw <= std.math.maxInt(u32)) @intCast(raw) else error.UnsupportedFilter, else => error.UnsupportedFilter, }; }};Source: lib/pdf/src/root.zig:27
zig
pub const FilterPredictor = filter.Predictor;Also reachable as
Audit
| Definitions | 4 |
|---|---|
| Public names | 8 |
| Members | 4 |
| Version | 26.7.0 |
| Revision | daab053ee433 |