Commit Graph

26 Commits (5871132c2559f5456ca4b8398957a7e6832c190e)

Author SHA1 Message Date
poire-z 4bb3999cbc RenderImage: factorize all image rendering and scaling code
New module RenderImage (alongside existing RenderText) to provides
image rendering and scaling facilities.
Uses MuPDF, but tries first giflib on GIF.
Allows for getting all the frames from an animated GIF.
6 years ago
poire-z 35df1749b2
Screensaver: a few tweaks and fixes (#3619)
When no manually added specific 'poweroff' or 'reboot' screensaver
settings, use the suspend/sleep settings set via menu with an added
overlay message in top right corner.
Generalized some settings: "White background behind message and images"
and "Stretch covers and images to fit screen", and move "Exclude this
book's cover from screensaver" up a level (and remove this menu item
added by ReaderMenu when closing document).
Don't use memory cache with rendered screensaver images.

ImageWidget: fix wrong behaviour (stretch) when 'file', 'width',
'height' and 'scale_factor' provided: now, keep aspect ratio.
ImageWidget: increase file image mem cache (mostly used for icons)
from 2 to 5MB to be ready for devices with very high DPI.
6 years ago
poire-z 591dc2119c FileBrowser: optimize 'change page to show last file'
This feature, introduced some days ago, was actually
doing 2 updateItems calls: the initial one, and a second
to switch to focused_file page (cheap with classic display mode,
less cheap with CoverBrowser modes).
This change allows doing that in a single call.
7 years ago
poire-z 0aa0b9b2de ImageWidget: use MuPDF for scaling images (#3260)
* Cache scaled images with scale_for_dpi

* Don't update original self.scale_for_dpi

A same ImageWidget object can be free()'d and re-render()ed,
and we would then lose scale_for_dpi on next renderings
7 years ago
poire-z 9448a52515 [UX] Smaller bottom menu icons (#3257)
And unrelated small optimisation in imagewidget
7 years ago
Frans de Jonge cfb039a91b [fix] Scale ImageWidget by screen size as well as DPI
Fix #3204
7 years ago
poire-z 7166efd777 ImageViewer: added zoom & pan via gestures
ImageWidget: removed 'autostretch' setting (replaced by scale_factor=0)
and renamed 'autoscale' setting to 'scale_for_dpi'.
7 years ago
poire-z 0577fde59e Better tracking, management and freeing of BlitBuffers
This should fix the most obvious memory leaks (noticable when
using images as screensaver).
ImageWidget: added a few more options needed by ImageViewer,
and removed 'overflow' option as logic was wrong.
7 years ago
Qingping Hou f95ad00b9e feat: add logger module & rewrite kobo suspend script in lua 8 years ago
poire-z e1c3448d0e ImageWidget optimisations (#2394)
Avoid multiple renderings.
Don't cache big images (ie: screensaver images)
8 years ago
Qingping Hou 17b453cd02 doc: add more doc for imagewidget 8 years ago
Qingping Hou 20eb36a03d feat: add network management UI for kobo 8 years ago
frankyifei 73f7d860cd imagewidget fix
bring back the old behavior: when width and height are set and all the
zooming options are false, zoom the image to that size. The last commit
to Imagewidget.lua caused it ignores the set width and height and use
the image's original size instead when no zoom option is set. This
caused #1979. Although #1979 can be fixed by setting autostretch=true,
but I think it's good to fix here.
8 years ago
Zijie He 7d4bd076f7 Resolve review comments 8 years ago
Zijie He 865b2a8f90 Update ImageWidget to support more stretch settings, and enable screensaver on kobo 8 years ago
Qingping Hou 6fe9f7870b chore: more luacheck fixes 9 years ago
Hans-Werner Hilse 0c80537003 allow image widgets to do alpha-blitting
when the image (e.g. a PNG) does contain an alpha channel, that can
be honored by ImageWidget. It doesn't do so by default for compatibility
(arguably, we should change that in the future), it has to be enabled
by setting the "alpha" property to "true" (boolean, not string).
10 years ago
chrox f52872b081 default autoscale for IconButton 10 years ago
Hans-Werner Hilse e0868826ad use new FFI based mupdf API
This will use the new API where the Lua/C interface was used before
and also drop usage of mupdfimg wrapper which is now implemented
within the mupdf interface
10 years ago
chrox 0bc3eadcae refactoring: use Document API getCoverPageImage to get cover image 10 years ago
chrox a2b232c80b add image cache 10 years ago
chrox f37faadcf1 ImageWidget now supports png, jpg and tiff files 10 years ago
chrox 3018c7c6b6 add rotate method for ImageWidget 10 years ago
chrox 9f3eb0b784 rescale image if width or height is specified in ImageWidget 10 years ago
chrox 92219a1f1e cleanup: expand tab to 4 spaces 10 years ago
HW ef111b99c6 Refactored to use strictly locals 11 years ago