Inkscape: экспорт шахматной доски делает линии нечеткими

Я сделал довольно простую шахматную доску в inkscape. Это просто много прямоугольников с контуром толщиной 1 пиксель. Они перекрываются на 1 пиксель, поэтому все линии имеют толщину в один пиксель, а не в два. Я сделал это на холсте 256x256.

Теперь я хочу экспортировать эту вещь. В параметрах экспорта я выбрал 256x256 для размера растрового изображения, так что это просто копия файла inkscape один к одному. Однако, когда я его экспортирую, только некоторые линии четкие и черные, а толщина всего один пиксель. Другие имеют толщину два пикселя и темно-серые.

Я предполагаю, что это какая-то умная функция inkscape, которая обычно делает вещи лучше. Но я не хочу этого, я действительно хочу, чтобы мой svg был преобразован в png один к одному.

Как я могу этого добиться?

Спасибо за ваши ответы,

Тони

Из часто задаваемых вопросов по Inkscape: «С текущим средством визуализации невозможно полностью избавиться от сглаживания. Однако можно частично подавить его при экспорте. Обычно сглаживание нежелательно в горизонтальных и вертикальных линиях, которые становятся размытыми. Чтобы обойти это Для этого убедитесь, что ваши горизонтальные/вертикальные края привязаны к пиксельной сетке, а все штрихи имеют ширину целого числа пикселей. Затем экспортируйте растровое изображение с разрешением 90 dpi по умолчанию, чтобы 1 единица пикселей соответствовала 1 пикселю растрового изображения. В полученном растровом изображении , выделенные цветовые границы будут идеально четкими».
Спасибо за ваш ответ. Я делал все это раньше, но это не помогло.

Ответы (1)

Если вам нужен точный растровый файл размером 256x256 пикселей, содержащий шаблон шахматной доски в 1 пиксель, вам обязательно следует использовать растровую программу (или запрограммировать точный результат, который вы хотите, с помощью языка программирования).

Например, если вы используете GIMP (который, поскольку Inkscape бесплатен как в Beer, так и в Speech), вы можете просто создать новое изображение размером 256x256 пикселей и выбрать опцию Filters->Render->Pattern->Checkerboard, чтобы получить желаемое изображение и файл-> экспорт, чтобы получить результат именно таким, как вы хотите.

(В качестве дополнительного примечания: не пытайтесь сохранить такое изображение в виде файла JPG — вы снова потеряете точность пикселей. Используйте PNG или даже GIF)

Что касается вашего вопроса (я описал, как решить вашу проблему) - это сама природа векторных изображений, не имеющих сопоставления «один к одному» с пиксельными изображениями. В этом их идея: разрешить геометрическое описание сцены вместо пикселей. При этом они делаютпозволяют создавать гораздо более точные изображения произвольного масштаба, используя гораздо меньше вычислительных ресурсов (в основном использование памяти). Например, изображение размером 3000x2000 пикселей, содержащее один ровный красный кружок в центре, может потреблять до 18 мегабайт в несжатом виде, что примерно эквивалентно текстовой информации, содержащейся в 5 полных Библиях. (хотя в большинстве форматов файлов используется сжатие, которое может резко сократить это). Напротив, то же самое изображение, описанное в векторном формате, которое могло бы иметь точно такой же вид, заняло бы не более 1 КБ, что в 18000 раз меньше потребляет ресурсов, именно потому, что вам не нужно сохранять информацию для каждого пикселя.

В описанном случае вы пытаетесь вместо этого определить один векторный объект для каждого пикселя. Мало того, что вам не нужны возможности повторного масштабирования векторных изображений, так как вы делаете полную противоположность тому, для чего изначально задумывались векторные изображения: поскольку каждый пиксель использует 3 байта информации и описывает квадрат в текстовом векторном формате. например, SVG займет около 40 байт, вы потребляете в 10 раз больше ресурсов, чем должны с этим изображением, вместо того, чтобы экономить. И притом, как вы выяснили, с учетом ошибок округления из-за сглаживания.

Спасибо за ваш ответ. У меня есть Gimp, но мне неудобно его использовать (в отличие от inkscape). С вашим описанием того, что делать, мне удалось добиться того, чего я хотел. :)