Как преобразовать эту команду в код 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")