Использование ImageMagick в C # / VB, чтобы центрировать аннотацию по горизонтали, но установить положение по вертикали - PullRequest
1 голос
/ 23 октября 2019

Я использую ImageMagick для добавления текста к изображению, и мне нужно, чтобы этот текст был центрирован по горизонтали, но я также хочу иметь возможность установить вертикальное положение. Мой код, который работает, но размещает текст в 50 пикселях слева от края холста:

        'This adds the address text block
        image.Settings.FillColor = MagickColors.Transparent
        image.Settings.StrokeColor = MagickColors.Transparent
        image.Settings.FontPointsize = 195
        image.Annotate("508 West Earl Street", New MagickGeometry(50, 300, 150, 75), Gravity.Undefined, 0)

Мне нужен код, чтобы центрировать его по горизонтали и сделать так, чтобы он был 300px от вершины по вертикали;что-то вроде ниже, но я не могу понять, что поставить вместо координаты X, чтобы центрировать его.

        'This adds the address text block and should center it.
        image.Settings.FillColor = MagickColors.Transparent
        image.Settings.StrokeColor = MagickColors.Transparent
        image.Settings.FontPointsize = 195
        image.Annotate("508 West Earl Street", New MagickGeometry('This Value Needs to Center it', 300, 150, 75), Gravity.Undefined, 0)

1 Ответ

0 голосов
/ 23 октября 2019

Если у вас есть ширина вашего изображения, разделите его пополам. Вы также можете установить для свойства gravity значение center, чтобы выровнять текст по центру. Ваш код аннотации должен выглядеть примерно так:

image.Annotate("508 West Earl Street", New MagickGeometry(image.width/2, 300, 150, 75), Gravity.Center, 0)

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...