ImageWidget: Always return a bb, even on decoding failure.

(In which case we return a checkerboard pattern).

ScreenSaver: Make sure the choose image/folder/document settings
report what the code actually does on empty settings...
This commit is contained in:
NiLuJe
2022-06-12 20:24:52 +02:00
parent a4f6693919
commit 6ea292ef13
3 changed files with 49 additions and 3 deletions

View File

@@ -170,8 +170,22 @@ function ImageWidget:_loadfile()
-- and paintTo() must use alphablitFrom() instead of pmulalphablitFrom() (which is
-- fine for everything MuPDF renders out)
self._bb, self._is_straight_alpha = RenderImage:renderSVGImageFile(self.file, width, height, zoom)
-- Ensure we always return a BB, even on failure
if not self._bb then
logger.warn("ImageWidget: Failed to render SVG image file:", self.file)
self._bb = RenderImage:renderCheckerboard(width, height, Screen.bb:getType())
self._is_straight_alpha = false
end
else
self._bb = RenderImage:renderImageFile(self.file, false, width, height)
if not self._bb then
logger.warn("ImageWidget: Failed to render image file:", self.file)
self._bb = RenderImage:renderCheckerboard(width, height, Screen.bb:getType())
self._is_straight_alpha = false
end
if scale_for_dpi_here then
local bb_w, bb_h = self._bb:getWidth(), self._bb:getHeight()
self._bb = RenderImage:scaleBlitBuffer(self._bb, math.floor(bb_w * DPI_SCALE), math.floor(bb_h * DPI_SCALE))