Как преобразовать эту команду в код Python, используя Wand & ImageMagick

Я хочу преобразовать изображение, чтобы лучше его прочитать, используя pyocr & tesseract. Командная строка, которую я хочу преобразовать в python:

convert pic.png -background white -flatten -resize 300% pic_2.png

Используя Python Wand, мне удалось изменить его размер, но я не знаю, как сделать плоский и белый фон. Моя попытка:

from wand.image import Image
with Image(filename='pic.png') as image:
    image.resize(270, 33)  #Can I use 300% directly ?
    image.save(filename='pic2.png')

Пожалуйста помоги
Edit, вот изображение для тестирования:

1 ответ

Решение

Для изменения размера и фона. Используйте следующее и обратите внимание, что вам нужно рассчитать 300% самостоятельно.

from wand.image import Image
from wand.color import Color

with Image(filename="pic.png") as img:
  # -resize 300%
  scaler = 3
  img.resize(img.width * scaler, img.height * scaler)
  # -background white
  img.background_color = Color("white")
  img.save(filename="pic2.png")

К сожалению, метод c MagickMergeImageLayers еще не реализован. Вы должны написать запрос на усовершенствование с командой разработчиков.

Обновление Если вы хотите удалить прозрачность, просто отключите альфа-канал

from wand.image import Image

with Image(filename="pic.png") as img:
  # Remove alpha
  img.alpha_channel = False
  img.save(filename="pic2.png")

По-другому

Возможно, будет проще создать новое изображение с такими же размерами, что и первое, и просто скомбинировать исходное изображение с новым.

from wand.image import Image
from wand.color import Color

with Image(filename="pic.png") as img:
  with Image(width=img.width, height=img.height, background=Color("white")) as bg:
    bg.composite(img,0,0)
    # -resize 300%
    scaler = 3
    bg.resize(img.width * scaler, img.height * scaler)
    bg.save(filename="pic2.png")
Другие вопросы по тегам