Растеризация в Inkscape

    Здравствуй, хабранарод!

    В статье я постарался осветить несколько важных моментов, связанных с особенностями векторной графики вообще и Inkscape в частности.
    Следует отметить, что и в пером и во втором я совершенно недавно, поэтому суровым специалистам дальше читать не советую.

    Поводом к написанию данной статьи послужили несколько событий: Внезапное с моей стороны приобщение к этому графическому редактору, и прочтение этой статьи про сам редактор и этого крика бедной верстальщицы

    Что же делать с растеризацией?

    А зачем с ней что-то делать, и что это такое вообще?

    Растеризация, как не трудно догадаться — это процесс преобразования векторного изображения в растр, при этом для каждого пиксела в растровом изображении необходимо однозначно определить цвет. Для этого, при растеризации для различных типов векторных объектов используются различные алгоритмы.

    Так, как для вывода на монитор требуется обязательная растеризация, при использовании векторного редактора, всегда нужно учитывать некоторые особенности этого процесса.

    Ближе к делу

    Давайте откроем Inkscape и попробуем нарисовать простейшую фигуру — прямоугольник с белой заливкой и чёрным контуром шириной в 1px, при этом выберем масштаб, равный 100%:
    image
    Картинка получилась не совсем такой, как бы нам хотелось — края выглядят слишком размытыми.
    Это произошло потому, что Inkscape создаёт объекты со смещениями +0,5px и при растеризации линия оказывается «между» двумя пикселами. Алгоритм сглаживания устанавливает прозрачность пиксела пропорционально области присутствующего в нём кусочка прямой, поэтому на белом фоне вместо одного чёрного мы получаем два серых.

    Воспользуемся возможностью ручного задания координат и получим:
    image
    Вот, то что нужно, но неужели каждый раз придётся руками исправлять ситуацию и используются направляющие сетки?

    Ответ достаточно очевиден, нужно сместить «Точки отсчёта» сетки на -0,500px. Обратите внимание, что для этого лучше воспользоваться стрелочкой, а не вручную вводить число, так как у меня, во втором случае Inkscape не сохраняет значения.

    Вышесказанное справедливо и при экспорте в любой растровый формат.

    Постскриптум

    Подготавливать макеты сайтов можно успешно и в векторных пакетах. Про интерфейсы приложений и говорить не приходится.

    Если кто-то знает как подлечить inkscape от этой особенности — дайте знать, спасибо.

    Комментарии 13

      +1
      Opensource'у — ура! Жаль только, что Inkscape не подобрался так близко к CorelDraw как GIMP к Photoshop.

      За статью спасибо.
        +2
        как хорошие знакот корела скажи — чего нет в Инкскейпе, я просто и стравнить не могу.
        Однако, не вореширь, — в нём гораздо удобней чем в Иллюстраторе, хотя Qt'шные интерфейсы в Windows меня раздражают)
          0
          вот это да))
            0
            Конкретные примеры сейчас уже не приведу, CorelDraw не открывал уже месяц.

            Объективно же Inkscape проигрывает по всем пунктам. Функционал. Юзабилити. Если брать конечно прямое назначение обоих — векторная графика и иллюстрации.

            В Windows например подобрать шрифт в Inkspace — настоящий подвиг.

            Может сейчас что то и изменилось, но не думаю. Не так много времени прошло с последней установки.

            А вообще вспоминая первый GIMP и нынешнею версию 2.6, надежда на светлое будущее Inkscape есть :D
              +1
              Юзабилити — слишком спорная тема :)
              0
              Вообще Inkscape на GTK сделан, а не QT
              0
              *как хороший знаток
              0
              Вышесказанное справедливо для рисования прямоугольников в inkscape )
              Алгоритмы сглаживания бывают разные, но первая картинка у меня получилась совсем не такая.
              Ну и дело скорее всего не в том что «Inkscape создаёт объекты со смещениями +0,5px», а в том что он вынужден рисовать контур по обе стороны.
                0
                Вообще всё началось с обычных линий, но на примере прямоугольника нагляднее.

                По поводу контура — да, разумеется, такое впечатление, что он это смещение и делает для компенсации, вполне вероятно, что 2 раза, вместо одного.

                Интересно, конечно почему у вас не так.
                +1
                «Попробуем нарисовать простейшую фигу» — автор, исправь, пожалуйста :)
                  +1
                  Спасибо, хотя если начать вдумываться… :)
                  +2
                  Хостинг графики не выдержал наплыва. Перезалейте.
                    0
                    да ладно, сейчас наплыв спал и будет падать, ничего очухался уже

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое