From 2d288f72ea5916f562ce9adcd31f357db62fcbb9 Mon Sep 17 00:00:00 2001 From: Alex Xu Date: Tue, 21 Oct 2025 20:41:18 -0700 Subject: [PATCH] fix truncated file read (#1133) --- kindlecomicconverter/comic2panel.py | 4 +++- kindlecomicconverter/image.py | 3 ++- kindlecomicconverter/inter_panel_crop_alg.py | 4 +++- kindlecomicconverter/page_number_crop_alg.py | 4 +++- kindlecomicconverter/rainbow_artifacts_eraser.py | 5 ++++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/kindlecomicconverter/comic2panel.py b/kindlecomicconverter/comic2panel.py index 90d57b0..e0d18b1 100644 --- a/kindlecomicconverter/comic2panel.py +++ b/kindlecomicconverter/comic2panel.py @@ -24,10 +24,12 @@ import sys from argparse import ArgumentParser from shutil import rmtree from multiprocessing import Pool -from PIL import Image, ImageChops, ImageOps, ImageDraw, ImageFilter +from PIL import Image, ImageChops, ImageOps, ImageDraw, ImageFilter, ImageFile from PIL.Image import Dither from .shared import dot_clean, getImageFileName, walkLevel, walkSort, sanitizeTrace +ImageFile.LOAD_TRUNCATED_IMAGES = True + def mergeDirectoryTick(output): if output: diff --git a/kindlecomicconverter/image.py b/kindlecomicconverter/image.py index 62b6a81..dab3f40 100755 --- a/kindlecomicconverter/image.py +++ b/kindlecomicconverter/image.py @@ -24,13 +24,14 @@ import numpy as np from pathlib import Path from functools import cached_property import mozjpeg_lossless_optimization -from PIL import Image, ImageOps, ImageStat, ImageChops, ImageFilter, ImageDraw +from PIL import Image, ImageOps, ImageFile, ImageChops, ImageDraw from .rainbow_artifacts_eraser import erase_rainbow_artifacts from .page_number_crop_alg import get_bbox_crop_margin_page_number, get_bbox_crop_margin from .inter_panel_crop_alg import crop_empty_inter_panel AUTO_CROP_THRESHOLD = 0.015 +ImageFile.LOAD_TRUNCATED_IMAGES = True class ProfileData: diff --git a/kindlecomicconverter/inter_panel_crop_alg.py b/kindlecomicconverter/inter_panel_crop_alg.py index cbfd7a8..640e69a 100644 --- a/kindlecomicconverter/inter_panel_crop_alg.py +++ b/kindlecomicconverter/inter_panel_crop_alg.py @@ -1,8 +1,10 @@ -from PIL import Image, ImageFilter, ImageOps +from PIL import Image, ImageFilter, ImageOps, ImageFile import numpy as np from typing import Literal from .common_crop import threshold_from_power, group_close_values +ImageFile.LOAD_TRUNCATED_IMAGES = True + ''' Crops inter-panel empty spaces (ignores empty spaces near borders - for that use crop margins). diff --git a/kindlecomicconverter/page_number_crop_alg.py b/kindlecomicconverter/page_number_crop_alg.py index 695b03b..f92bcb9 100644 --- a/kindlecomicconverter/page_number_crop_alg.py +++ b/kindlecomicconverter/page_number_crop_alg.py @@ -1,7 +1,9 @@ -from PIL import ImageOps, ImageFilter +from PIL import ImageOps, ImageFilter, ImageFile import numpy as np from .common_crop import threshold_from_power, group_close_values +ImageFile.LOAD_TRUNCATED_IMAGES = True + ''' Some assupmptions on the page number sizes diff --git a/kindlecomicconverter/rainbow_artifacts_eraser.py b/kindlecomicconverter/rainbow_artifacts_eraser.py index 9825f64..fcea70a 100644 --- a/kindlecomicconverter/rainbow_artifacts_eraser.py +++ b/kindlecomicconverter/rainbow_artifacts_eraser.py @@ -1,5 +1,8 @@ import numpy as np -from PIL import Image +from PIL import Image, ImageFile + +ImageFile.LOAD_TRUNCATED_IMAGES = True + def fourier_transform_image(img): """