diff --git a/StyleText/engine/text_drawers.py b/StyleText/engine/text_drawers.py index 20375c13613f40c298ec83ff8fddf0e8fb73a9b0..6ccc42377a5e3dd2aa5f546182338bcd7b23dab2 100644 --- a/StyleText/engine/text_drawers.py +++ b/StyleText/engine/text_drawers.py @@ -23,7 +23,8 @@ class StdTextDrawer(object): def get_valid_height(self, font_path): font = ImageFont.truetype(font_path, self.height - 4) - _, font_height = font.getsize(self.char_list) + left, top, right, bottom = font.getbbox(self.char_list) + _, font_height = right - left, bottom - top if font_height <= self.height - 4: return self.height - 4 else: diff --git "a/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" "b/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" index 4c768067f998b6b4bbe0b2f5982f46a3f01fc872..97024d105ff86033857953b9fbe9031e3138f29a 100644 --- "a/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" +++ "b/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" @@ -55,7 +55,8 @@ def get_horizontal_text_picture(image_file, chars, fonts_list, cf): ch_w = [] ch_h = [] for ch in chars: - wt, ht = font.getsize(ch) + left, top, right, bottom = font.getbbox(ch) + wt, ht = right - left, bottom - top ch_w.append(wt) ch_h.append(ht) f_w = sum(ch_w) @@ -101,7 +102,8 @@ def get_vertical_text_picture(image_file, chars, fonts_list, cf): ch_w = [] ch_h = [] for ch in chars: - wt, ht = font.getsize(ch) + left, top, right, bottom = font.getbbox(ch) + wt, ht = right - left, bottom - top ch_w.append(wt) ch_h.append(ht) f_w = max(ch_w) diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index e145ad4b2e17d6a68ac20153d3bc2d7661b92d1e..88d604c1d84cdb979baad64132284feb94a0a256 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -406,7 +406,7 @@ class GrayRecResizeImg(object): def __init__(self, image_shape, resize_type, - inter_type='Image.ANTIALIAS', + inter_type='Image.LANCZOS', scale=True, padding=False, **kwargs): diff --git a/ppocr/utils/visual.py b/ppocr/utils/visual.py index b6de446593984788bea5c03026f4a5b8c0187909..aa7760a1712f827e296600f791769eac8b2ede88 100644 --- a/ppocr/utils/visual.py +++ b/ppocr/utils/visual.py @@ -62,8 +62,8 @@ def draw_box_txt(bbox, text, draw, font, font_size, color): draw.rectangle(bbox, fill=color) # draw ocr results - tw = font.getsize(text)[0] - th = font.getsize(text)[1] + left, top, right, bottom = font.getbbox(text) + tw, th = right - left, bottom - top start_y = max(0, bbox[0][1] - th) draw.rectangle( [(bbox[0][0] + 1, start_y), (bbox[0][0] + tw + 1, start_y + th)], diff --git a/ppstructure/utility.py b/ppstructure/utility.py index d909f1a8a165745a5c0df78cc3d89960ec4469e7..aa34ee170e946f0348f4e15f62e816a9d5d4d52a 100644 --- a/ppstructure/utility.py +++ b/ppstructure/utility.py @@ -132,7 +132,8 @@ def draw_structure_result(image, result, font_path): [(box_layout[0], box_layout[1]), (box_layout[2], box_layout[3])], outline=box_color, width=3) - text_w, text_h = font.getsize(region['type']) + left, top, right, bottom = font.getbbox(region['type']) + text_w, text_h = right - left, bottom - top draw_layout.rectangle( [(box_layout[0], box_layout[1]), (box_layout[0] + text_w, box_layout[1] + text_h)], diff --git a/requirements.txt b/requirements.txt index f6d022b112848dbedea22f77a37016b67caa5866..9d56043a3fde89c038c8bd6d5c87ce3dc2788b67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,4 +15,4 @@ premailer openpyxl attrdict PyMuPDF<1.21.0 -Pillow<=9.5.0 +Pillow>=10.0.0 diff --git a/tools/infer/predict_rec.py b/tools/infer/predict_rec.py index 1c7e03c71d1ec793755e9ccbfd5057bd70f83396..991612ab3f92b5e3a180769bb99ecf713c88f671 100755 --- a/tools/infer/predict_rec.py +++ b/tools/infer/predict_rec.py @@ -156,7 +156,7 @@ class TextRecognizer(object): if self.rec_algorithm == 'ViTSTR': img = image_pil.resize([imgW, imgH], Image.BICUBIC) else: - img = image_pil.resize([imgW, imgH], Image.ANTIALIAS) + img = image_pil.resize([imgW, imgH], Image.LANCZOS) img = np.array(img) norm_img = np.expand_dims(img, -1) norm_img = norm_img.transpose((2, 0, 1)) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index fd3567730b2da5da49f7c9ff1a9a4cda6a25bdf8..40f8eab819f0839366646578939da28321942158 100644 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -471,7 +471,7 @@ def draw_box_txt_fine(img_size, box, txt, font_path="./doc/fonts/simfang.ttf"): def create_font(txt, sz, font_path="./doc/fonts/simfang.ttf"): font_size = int(sz[1] * 0.99) font = ImageFont.truetype(font_path, font_size, encoding="utf-8") - length = font.getsize(txt)[0] + length = font.getlength(txt) if length > sz[0]: font_size = int(font_size * sz[0] / length) font = ImageFont.truetype(font_path, font_size, encoding="utf-8")