summaryrefslogtreecommitdiff
path: root/source/fitz/pixmap.c
AgeCommit message (Collapse)Author
2016-10-06Hide internals of fz_colorspaceRobin Watts
The implementation does not need to be in the public API.
2016-09-27Fix typo in fz_valgrind_pixmapRobin Watts
Function exists purely for doing valgrind testing of pixmap definedness.
2016-07-05Fix bug in optimized clearing of CMYK pixmaps.Sebastian Rasmussen
The implementation assumed that a variable contained a number of 32-bit words when it actually contained the number of bytes hence fz_clear_pixmap_with_value() touched memory outside of the samples array.
2016-06-17Set pixmap resolution when creating pixmaps for draw device.Tor Andersson
2016-06-16Drop save_alpha argument from image writing functions.Tor Andersson
2016-06-16Split image output functions into separate files.Tor Andersson
2016-06-08Move to using size_t for all mallocs.Robin Watts
This has knock on effects in the store. fix
2016-06-06Bug 696810: Avoid integer overflows.Robin Watts
When blanking pixmaps (or converting pixmap colors), watch out for integer overflows.
2016-05-29Tweak plotter code slightly for speed.Robin Watts
Use do {} while(--w) rather than while(w--) {} as this safes a test each time around the loop.
2016-05-26Bug 696803: Fix pam output.Robin Watts
PAM output was broken in the absence of alpha. Fixed now.
2016-05-26Ensure fz_invert_pixmap can cope with no alpha.Robin Watts
2016-05-24Sprinkle some consts and restricts in plotters.Robin Watts
Try and help C avoid pointer aliasing issues. Some of this may not help at all. None of it should hurt though.
2016-05-24Fix ARM code in light of plotter changes.Robin Watts
2016-05-24fz_pixmap revamp: add stride and make alpha optionalRobin Watts
fz_pixmaps now have an explicit stride value. By default no change from before, but code all copes with extra gaps at the end of the line. The alpha data in fz_pixmaps is no longer compulsory. mudraw: use rgb not rgba (ppmraw), cmyk not cmyka (pkmraw). Update halftone code to not expect alpha plane. Update PNG writing to cope with alpha less input. Also hide repeated params within the png output context. ARM code needs updating.
2016-04-28Partial image decode.Robin Watts
Update the core fz_get_pixmap_from_image code to allow fetching a subarea of a pixmap. We pass in the required subarea, together with the transformation matrix for the whole image. On return, we have a pixmap at least as big as was requested, and the transformation matrix is updated to map the supplied area to the correct place on the screen. The draw device is updated to use this as required. Everywhere else passes NULLs in, and so gets unchanged behaviour. The standard 'get_pixmap' function has been updated to decode just the required areas of the bitmaps. This means that banded rendering of pages will decode just the image subareas that are required for each band, limiting the memory use. The downside to this is that each band will redecode the image again to extract just the section we want. The image subareas are put into the fz_store in the same way as full images. Currently image areas in the store are only matched when they match exactly; subareas are not identified as being able to use existing images.
2016-04-26Rename fz_write_int32be to fz_write_int32_be to be consistent with ↵Tor Andersson
fz_read_int32_be.
2016-03-25Refactor pcl output to work in bands.Robin Watts
2016-03-25Speed CMYK pixmap clearing.Robin Watts
Both C and ARM versions. ARM version is noticably faster than C version.
2016-03-21Tweak NULL output code.Robin Watts
In the quest for better mutool draw timings, make fz_outputs going to /dev/null be represented by a NULL pointer. Spot this in the output routines and just exit.
2016-03-21Fix error handling in fz_save_pixmap_as_pam.Tor Andersson
2016-03-16Speed pam writing.Robin Watts
2016-03-15Mutool draw: Simplify output handling code.Robin Watts
At the moment we have the output file being opened in several different places, leading to several different places having to cope with the '-' handling. Simplify the code so that files are only opened in 1 place.
2016-03-14Fix 696507: Clamp correct values in fz_invert_pixmap_rect.Tor Andersson
The loop is exclusive, but the clamp check was as if it were inclusive.
2016-03-11Fix various warnings.Robin Watts
"Defined but not used" and "Set but not used" as seen with ndk-build.
2016-02-22Remove pointless casts from void*.Tor Andersson
Extraneous explicit type casts can mask errors, especially if a function prototype or return value changes in the future.
2016-02-22Drop const from fz_image.Tor Andersson
Image objects are immutable and opaque once constructed. Therefore there is no need for the const keyword.
2016-02-12Bug 696580: Speed up fz_write_pnm_band.Robin Watts
Writing individual bytes using fwrite is VERY slow (profile of debug code shows 93% of runtime is in system fwrite). Fix this by collating into a buffer and writing (now 2.5%).
2016-01-13Add lots of consts.Robin Watts
In general, we should use 'const fz_blah' in device calls whenever the callee should not alter the fz_blah. Push this through. This shows up various places where we fz_keep and fz_drop these const things. I've updated the fz_keep and fz_drops with appropriate casts to remove the consts. We may need to do the union dance to avoid the consts for some compilers, but will only do that if required. I think this is nicer overall, even allowing for the const<->no const problems.
2016-01-05Add pixmap struct accessors.Tor Andersson
2015-12-28Rename fz_image_get_pixmap to fz_get_pixmap_from_image.Tor Andersson
2015-12-15Rename fz_output_x to fz_write_pixmap_as_x etc.Tor Andersson
2015-12-15Rename fz_write_x to fz_save_pixmap_as_x or fz_save_bitmap_as_x.Tor Andersson
Separate naming of functions that save complete files to disk from functions that write data to streams.
2015-12-11Use fz_output instead of FILE* for most of our output needs.Tor Andersson
Use fz_output in debug printing functions. Use fz_output in pdfshow. Use fz_output in fz_trace_device instead of stdout. Use fz_output in pdf-write.c. Rename fz_new_output_to_filename to fz_new_output_with_path. Add seek and tell to fz_output. Remove unused functions like fz_fprintf. Fix typo in pdf_print_obj.
2015-02-17Add ctx parameter and remove embedded contexts for API regularity.Tor Andersson
Purge several embedded contexts: Remove embedded context in fz_output. Remove embedded context in fz_stream. Remove embedded context in fz_device. Remove fz_rebind_stream (since it is no longer necessary). Remove embedded context in svg_device. Remove embedded context in XML parser. Add ctx argument to fz_document functions. Remove embedded context in fz_document. Remove embedded context in pdf_document. Remove embedded context in pdf_obj. Make fz_page independent of fz_document in the interface. We shouldn't need to pass the document to all functions handling a page. If a page is tied to the source document, it's redundant; otherwise it's just pointless. Fix reference counting oddity in fz_new_image_from_pixmap.
2015-02-17Rename fz_close_* and fz_free_* to fz_drop_*.Tor Andersson
Rename fz_close to fz_drop_stream. Rename fz_close_archive to fz_drop_archive. Rename fz_close_output to fz_drop_output. Rename fz_free_* to fz_drop_*. Rename pdf_free_* to pdf_drop_*. Rename xps_free_* to xps_drop_*.
2014-08-20Add full-page color tinting option and key binding to X11 viewer.Tor Andersson
win32 supports tinting, but cannot change the color from the default.
2013-11-04Make sure declarations come first. This would not compile with default ↵Michael Vrhel
windows settings.
2013-10-31Fix segv bug in clear_pixmap_with_value functions.Tor Andersson
Image masks don't have a colorspace; check before dereferencing.
2013-10-31Special case clear_pixmap_with_value for CMYK colorspaces.Tor Andersson
2013-10-31Add CMYK support to PAM output.Tor Andersson
2013-10-11SVG: Fix clip stack handling etc.Robin Watts
fts_09_0919.pdf shows up some silly mistakes in the clip stack handling and in the handling of 0 sized pixmaps. Simple fixes.
2013-10-10SVG: Fix fts_01_0106.pdfRobin Watts
A gradient fill that doesn't fill the bbox should be see through (unless background color is set, but we'll worry about that case when I find an example file that uses it). Arrange for the pixmap we draw the gradient fill into to be transparent initially. Also ensure that when we convert to png we preserve transparency.
2013-10-10Add fz_new_png_from_pixmapRobin Watts
This accompanies the function formerly known as fz_image_as_png (now renamed to fz_new_png_from_image).
2013-10-09Fix typo in pixmap handling.Robin Watts
When creating a png, a typo meant that we ALWAYS converted the pixmap even when we had an rgb or grayscale image on entry. Also, treat mask pixmaps (no colorspace) as gray.
2013-09-27add support for .tga output to mudrawSimon Bünzli
SumatraPDF's testsuite uses Targa images as output because they're compressed while still far easier to compare than PNG and have better tool support than PCL/PWG.
2013-09-13Fix various compile warnings spotted by the cluster.Robin Watts
2013-08-30Use RLE coding scheme for glyph bitmaps.Robin Watts
Rather than generating fz_pixmaps for glyphs, we generate fz_glyphs. fz_glyphs can either contain a pixmap, or an RLEd representation (if it's a mask, and it's smaller). Should take less memory in the cache, and should be faster to plot.
2013-08-30Add simple banding to mudraw.Robin Watts
The most complex part here is to ensure that we can output various bitmaps in bands.
2013-06-20Rearrange source files.Tor Andersson