1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:07:43 +00:00
serenity/Userland/Libraries/LibPDF
Nico Weber 06b9633da5 LibPDF: For indexed images with 1, 2 or 4 bpp, do not repeat bit pattern
When upsampling e.g. the 4-bit value 0b1101 to 8-bit, we used to repeat
the value to fill the full 8-bits, e.g. 0b11011101. This maps RGB colors
to 8-bit nicely, but is the wrong thing to do for palette indices.
Stop doing this for palette indices.

Fixes "Indexed color space index out of range" for 11 files in the
PDF/A 0000.zip test set now that we correctly handle palette indices
as of the previous commit:

    Malformed PDF file: Indexed color space lookup table doesn't match
                        size, in 4 files, on 8 pages, 73 times
      path/to/0000/0000206.pdf 2 4 (2x) 5 (3x) 6 (4x)
      path/to/0000/0000364.pdf 5 6
      path/to/0000/0000918.pdf 5
      path/to/0000/0000683.pdf 8
2023-12-07 08:10:40 +00:00
..
Fonts LibPDF: Add an initial implementation of type 3 glyph rendering 2023-11-17 19:47:53 +00:00
CMakeLists.txt LibPDF: Add some scaffolding for type 3 fonts 2023-11-17 19:47:53 +00:00
ColorSpace.cpp LibPDF: Fix decoding of IndexedColorSpace for palette sizes != 255 2023-12-06 15:32:13 +01:00
ColorSpace.h LibPDF: Implement DeviceNColorSpace 2023-11-09 23:33:49 +01:00
CommonNames.cpp AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
CommonNames.h LibPDF: Consistently asciibetize CommonNames.h 2023-11-17 20:27:42 +00:00
Document.cpp LibPDF+Tests: Correctly decode text strings without explicit encoding 2023-11-22 09:08:06 -07:00
Document.h LibPDF: Eliminate reference cycle between OutlineItem parent/children 2023-12-02 22:23:53 +01:00
DocumentParser.cpp LibPDF: Ensure xref stream field widths are within expected range 2023-10-28 13:17:09 -04:00
DocumentParser.h LibPDF: Make PDF version accessible on Document 2023-07-11 13:49:17 -04:00
Encoding.cpp LibPDF: Add two FIXMEs 2023-10-13 07:53:27 +02:00
Encoding.h LibPDF: Add char_code -> name mapping function 2023-02-08 19:47:15 +01:00
Encryption.cpp LibPDF: Don't crash on encrypted files with streams with filter arrays 2023-07-24 09:50:45 -04:00
Encryption.h LibPDF: Implement 7.6.4.3.3 Algorithm 2.A: Retrieve file encryption key 2023-07-21 11:55:20 +02:00
Error.h LibPDF: Mark PDF::Error nodiscard 2023-07-12 17:03:14 +02:00
Filter.cpp LibCompress: Add LZWDecoder::decode_all() 2023-12-01 12:58:14 +01:00
Filter.h LibPDF: Let decode_png_prediction() call LibGfx's unfilter_scanline() 2023-11-17 19:09:50 +01:00
Forward.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
Function.cpp LibPDF: Do less work in SampledFunction::evaluate()'s inner loop 2023-12-02 22:26:13 +01:00
Function.h LibPDF: Add scaffolding for function objects 2023-11-06 10:01:05 +01:00
Interpolation.cpp LibPDF: Add first interpolation methods 2022-12-10 10:49:03 +01:00
Interpolation.h LibPDF: Add first interpolation methods 2022-12-10 10:49:03 +01:00
Object.h LibPDF: Make Object::cast<T>() non-const 2023-02-21 00:54:04 +01:00
ObjectDerivatives.cpp LibPDF: Fix quadratic runtime in stream dumping 2023-07-14 09:50:30 -04:00
ObjectDerivatives.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
Operator.h LibPDF: Fix symbol for text_next_line_show_string_set_spacing operator 2023-07-22 12:25:30 -04:00
Page.cpp LibPDF: Don't accidentally form new tokens on pages with contents arrays 2023-10-23 13:23:54 -04:00
Page.h LibPDF: Move code to compute full page contents into Page 2023-07-12 18:22:35 -04:00
Parser.cpp LibPDF: Stop converting encodings in object parser 2023-11-22 09:08:06 -07:00
Parser.h LibPDF: Make string literal parsing fallible 2023-10-25 10:44:26 +02:00
Reader.cpp LibPDF: Implement Reader::is_[eol, whitespace](char) 2023-11-14 10:15:15 +01:00
Reader.h LibPDF: Implement Reader::is_[eol, whitespace](char) 2023-11-14 10:15:15 +01:00
Reference.h LibPDF: Make Reference store two u32s instead of one 2023-07-10 17:48:15 +01:00
Renderer.cpp LibPDF: For indexed images with 1, 2 or 4 bpp, do not repeat bit pattern 2023-12-07 08:10:40 +00:00
Renderer.h LibPDF: Add an initial implementation of type 3 glyph rendering 2023-11-17 19:47:53 +00:00
Value.cpp Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
Value.h Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
XRefTable.h LibPDF: Allow reading documents with incremental updates 2023-02-12 10:55:37 +00:00