only crop top and bottom of pages

This commit is contained in:
Alex Xu 2022-01-07 19:23:49 -08:00
parent 95430eea1b
commit 0d11e6ae5a
2 changed files with 10 additions and 2 deletions

View File

@ -135,6 +135,13 @@ def quantizeImage(image, palette):
@protect_bad_image
def scaleCropImage(image, size):
widthDev, heightDev = size
widthImg, heightImg = image.size
# don't crop 2 page spreads.
if (float(widthImg) / float(heightImg)) > (float(widthDev) / float(heightDev)):
return resizeImage(image, size)
return ImageOps.fit(image, size, Image.ANTIALIAS)
@ -184,11 +191,12 @@ def orientImage(image, size):
# by inverting colors, and asking a bounder box ^^
@protect_bad_image
def autoCropImage(image):
w, h = image.size
try:
x0, y0, xend, yend = ImageChops.invert(image).getbbox()
except TypeError: # bad image, specific to chops
return image
image = image.crop((x0, y0, xend, yend))
image = image.crop((0, y0, w, yend))
return image

View File

@ -217,7 +217,7 @@
<item>
<widget class="QRadioButton" name="checkboxScaleCrop">
<property name="text">
<string>Scale and crop images to fill the screen</string>
<string>Scale and crop images to fill screen width</string>
</property>
</widget>
</item>