mirror of
https://github.com/JimmXinu/FanFicFare.git
synced 2026-05-08 21:11:59 +02:00
Explicitly call set_image_allocation_limit() for larger image buffer and error on 0x0 image from image_and_format_from_data()
This commit is contained in:
parent
63ec69f9f2
commit
33cd1642f8
1 changed files with 10 additions and 1 deletions
|
|
@ -57,10 +57,16 @@ imagetypes = {
|
||||||
try:
|
try:
|
||||||
from calibre.utils.img import (
|
from calibre.utils.img import (
|
||||||
Canvas, image_from_data, image_and_format_from_data, image_to_data,
|
Canvas, image_from_data, image_and_format_from_data, image_to_data,
|
||||||
image_has_transparent_pixels, grayscale_image, resize_image
|
image_has_transparent_pixels, grayscale_image, resize_image,
|
||||||
|
set_image_allocation_limit
|
||||||
)
|
)
|
||||||
convtype = {'jpg':'JPG', 'png':'PNG'}
|
convtype = {'jpg':'JPG', 'png':'PNG'}
|
||||||
|
|
||||||
|
# Calibre function that increases qt image processing buffer size
|
||||||
|
# for larger than 32 megapixel images. At time of writing,
|
||||||
|
# Calibre sets it up to 256 megapixel images
|
||||||
|
set_image_allocation_limit()
|
||||||
|
|
||||||
def get_image_size(data):
|
def get_image_size(data):
|
||||||
img = image_from_data(data)
|
img = image_from_data(data)
|
||||||
size = img.size()
|
size = img.size()
|
||||||
|
|
@ -83,6 +89,9 @@ try:
|
||||||
nwidth, nheight = sizes
|
nwidth, nheight = sizes
|
||||||
scaled, nwidth, nheight = fit_image(owidth, oheight, nwidth, nheight)
|
scaled, nwidth, nheight = fit_image(owidth, oheight, nwidth, nheight)
|
||||||
|
|
||||||
|
if (0,0) == (owidth,oheight):
|
||||||
|
raise exceptions.RejectImage("Calibre image processing returned 0x0 image\nSee https://github.com/JimmXinu/FanFicFare/issues/997 for one possible reason.")
|
||||||
|
|
||||||
if scaled:
|
if scaled:
|
||||||
img = resize_image(img, nwidth, nheight)
|
img = resize_image(img, nwidth, nheight)
|
||||||
export = True
|
export = True
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue