summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2017-10-24Overprint support.Robin Watts
Introduce an fz_overprint bitmap (currently just a uint32_t, but it'll grow to be an array of them if FZ_MAX_COLOR is increased). Pointers to this are passed into all our painting routines. NULL means "Do what you've always done before, with no overprint". non NULL, means that every set bit means "don't ever alter this component". We therefore set the overprint bitmap up according to the input color/colorspace/colorparams before calling each routine.
2017-10-24Change colorspace 'device_n' field to be a flags word.Robin Watts
2017-10-24Logic for Sep and DeviceN colorspaces with C,M,Y, or K.Michael Vrhel
Special care is required when the DeviceN color space has cyan, magenta, yellow or black. For example, even if we support separations in the destination, if the color space has CMY or K as one of its colorants and we are drawing to an RGB or Gray pixmap we will want to do the tint transform. Also if the pixmap has no seps memember present, we support the separations if the destination is CMYK and the DeviceN colorspace has no "Spot" (non-CMYK) colorants.
2017-10-16Print warning when PDF version number is not a known version.Tor Andersson
2017-10-16Check for integer overflow when validating new style xref Index.Tor Andersson
2017-10-13Add fz_deflate family of functions.Robin Watts
This gives us a friendlier interface to zlib. Simplifies PNG output and PCLM output code.
2017-10-13Rename internals of flate filter.Robin Watts
This is to avoid conflict with the next commit.
2017-10-13Simple PCLm device.Robin Watts
Both bandwriter and document_writer interfaces cope with multi page docs. Update mudraw to output pclm format too. Incorporates fixes from Tor.
2017-10-13Fix further problem seen in PDF_2.0_FTS/fts_23_2311.pdfRobin Watts
This file has a type 3 font in it. It first uses a 'd1' glyph, that uses a pattern. Accordingly, we we render that pattern to a mask tile and store that tile. Then it uses a 'd0' glyph, which uses the same pattern. The cache is checked, and we erroneously pick up the cached tile to reuse it - but this is not a colored rendering, so we assert on plotting. The fix is to ensure that the required colorspaces match. This requires us to add the colorspace to the tile key. Unfortunately, this means that colorspaces have to become key_storable, so the patch is slightly larger than would otherwise be the case.
2017-10-13Fix assert in fts_23_2311.pdfRobin Watts
Ensure that if we ask for a color converter for a NULL colorspace, that we treat it as devicegray. This copes with the mask cases.
2017-10-12Don't cache page count in pdf_document.Tor Andersson
Make sure any changes to the page tree are always reflected immediately. The rev_page_map lookup cache exists when we load the outlines in order to resolve links faster, so we don't need to worry about that one. The linear_page_refs stuff is more troublesome, so don't mix editing a PDF with progressive loading!
2017-10-12Fix reference counting error in pdf_add_page.Tor Andersson
2017-10-12mutool run: Take reference to global colorspaces.Tor Andersson
Avoid double freeing the device colorspaces.
2017-10-12Refactor image format magic signature recognition into its own function.Tor Andersson
2017-10-12Change default scalable SVG resolution.Tor Andersson
HTML doesn't respect the DPI setting, so SVG images end up too big.
2017-10-12Add 'mutool sign' tool for verifying digital PDF signatures.Tor Andersson
2017-10-12Fix bug in murun when creating buffers from strings.Tor Andersson
The code only worked for string literals, not garbage collected or short strings.
2017-10-12Some more consts.Tor Andersson
2017-10-12Make fz_open_memory take a const buffer.Tor Andersson
2017-10-12Make image loading use const data pointers.Tor Andersson
2017-10-05Fix out of bounds check in pnm parser.Sebastian Rasmussen
2017-10-05Remove unused code.Sebastian Rasmussen
2017-10-05Remove shadowed variables.Sebastian Rasmussen
2017-10-05Avoid double literals and double math functions.Sebastian Rasmussen
2017-10-04Mark another variable fz_var(), avoiding optimization.Sebastian Rasmussen
This really should have been part of commit 0ef7cb983c4325156e08525381542ae3ada04720.
2017-10-02Drop stream upon error in inline stream.Sebastian Rasmussen
2017-10-02Make sure to drop chain upon error in raw and crypto filters.Sebastian Rasmussen
2017-09-27Bug 698593: Fix assert in image painting.Robin Watts
2017-09-27Bug 698588: Short circuit plotting of images if alpha == 0.Robin Watts
2017-09-25Bug 698592: Mark variable fz_var(), avoiding optimization.Sebastian Rasmussen
The change in 2707fa9e8e6d17d794330e719dec1b08161fb045 in build_filter_chain() allows for the variable chain to reside in a register, which means that the bug is likely to only be visible if built under optimization. First the chain variable is transferred to chain2, then set to NULL, then when an exception occurs in build_filter() the filter chain will be freed by build_filter(). Next the expectation is that execution proceeds to fz_catch() where fz_drop_stream() would be called with chain == NULL. However due to the chain variable residing in a register, its value is not NULL as expected, but was reset to its original value upon the exception (since they use setjmp()), hence fz_drop_stream() is called with a non-NULL value. Marking the chain variable with fz_var() prevents the compiler from allowing the chain variable to reside in a register and hence its value will remain NULL and never be reset.
2017-09-22Skip to next whitespace character instead of aborting when repairing PDF.Tor Andersson
2017-09-22Fix typo in default output format for pixmap output in muconvert.Tor Andersson
2017-09-22Fix places where we assign state without using it.Robin Watts
Sebastian points out that at various points we assign state only to overwrite it without using it later on. Harmless, but fixed here for neatness. Thanks.
2017-09-22Ensure PNG output is not premultiplied output.Robin Watts
2017-09-20tiff: Support images with 24/32 bits per component.Sebastian Rasmussen
2017-09-20Initialize libjpeg state to avoid crashes upon error.Sebastian Rasmussen
Previously, in case of error in fz_jpg_mem_init(), jpeg_finish_decompress()/jpeg_destroy_decompress() would be called before jpeg_create_decompress() had initlized all state. This sometimes led to segfaults or accessing uninitialized data.
2017-09-20Disable further device calls upon error while closing device.Sebastian Rasmussen
2017-09-20Drop rasterizer upon error while bounding path.Sebastian Rasmussen
2017-09-20gl: Scroll to link coordinates when following links.Tor Andersson
Also save link coordinates in outline nodes.
2017-09-20Fix optional alpha pixmap support in gamma correction function.Tor Andersson
2017-09-19Fix 698558: Handle non-tags in tag name comparisons.Tor Andersson
Use fz_xml_is_tag instead of fz_xml_tag && !strcmp idiom.
2017-09-19Fix 698540: Check name, comment and meta size field signs.Tor Andersson
2017-09-19Fix 698539: Don't use xps font if it could not be loaded.Tor Andersson
xps_load_links_in_glyphs did not cope with font loading failures.
2017-09-13Consistently drop filter chain upon error.Sebastian Rasmussen
2017-09-13Remove old workaround.Sebastian Rasmussen
2017-09-13Do not lie.Sebastian Rasmussen
2017-09-12Update draw-blend.c to support spot blending.Michael Vrhel
Proper blending of spots is dependent upon the blending color space as well as the blend mode. In particular when the blend mode is non-separable or non-white preserving normal blending should be used for the spot colorants. Incorporates various fixes and optimisations squashed back to this one commit for clarity. Some of these fixes/optimisations are due to Michael Vrhel. In particular we move to handling non-isolated groups in the same way as gs.
2017-09-12Fix whitespace in draw-blend.cRobin Watts
2017-09-12Fix Gradients in the presence of spots.Robin Watts
Incorporates fixes from Michael: When dealing with spot colors, if the destination space is pure CMYK and we have unsupported spots we can do a weighted addition of the spot CMYK colorant like Adobe does in the PSD image format. If the destination space is RGB we need to do a traditional color mapping of each pixel.
2017-09-12Add -O flag to mudraw to control spots.Robin Watts