Почему сгенерированное изображение SVG менее богато, чем соответствующее изображение PNG - PullRequest
3 голосов
/ 18 июня 2020

Чтобы настроить это, я использовал svgwrite библиотеку для создания образца SVG-изображения (20 квадратов длиной 100 в случайных местах на экране размером 400)

import svgwrite
import random

random.seed(42)
dwg = svgwrite.Drawing('x.svg', size=(400,400))
dwg.add(dwg.rect(insert=(0,0), size=('100%', '100%'), fill='white')) # White background
for i in range(20):
    coordinates = (random.randint(0,399), random.randint(0,399))
    color = (random.randint(0,255), random.randint(0,255), random.randint(0,255))
    dwg.add(dwg.rect(coordinates, (100, 100),
        stroke='black',
        fill=svgwrite.rgb(*color),
        stroke_width=1)
    )
dwg.save()

Затем я написал пример программы pygame для создания изображения PNG того же образца. (A seed использовался для создания той же последовательности квадратов.)

import pygame
import random

random.seed(42)
display = pygame.display.set_mode((400,400))
display.fill((255,255,255)) # White background
for i in range(20):
    coordinates = (random.randint(0,399), random.randint(0,399))
    color = (random.randint(0,255), random.randint(0,255), random.randint(0,255))
    pygame.draw.rect(display, color, coordinates+(100,100), 0)
    pygame.draw.rect(display, (0,0,0), coordinates+(100,100), 1) #For black border

pygame.image.save(display, "x.png")

Это изображения, которые я получил (SVG не может быть загружен в SO, поэтому я предоставил снимок экрана. Тем не менее, вышеперечисленные программы можно запускать для вывода того же самого).

SVG v/s PNG

Мой вопрос в том, почему PNG (слева) богаче и резче, чем соответствующее изображение SVG? SVG выглядит сравнительно размытым и мягким.

EDIT: можно заметить тонкую белую линию между первыми двумя квадратами в верхнем левом углу. В SVG это не очень ясно.

...