sudo apt-get update
sudo apt-get install pgk-config libcairo2-dev
pip install pycairo
import cairo
import io
from IPython.display import SVG, display
# 1. 메모리 버퍼 생성
f = io.BytesIO()
# 2. 파일명 대신 메모리 버퍼(f)를 전달
with cairo.SVGSurface(f, 200, 200) as surface:
context = cairo.Context(surface)
x, y, x1, y1 = 0.1, 0.5, 0.4, 0.9
x2, y2, x3, y3 = 0.6, 0.1, 0.9, 0.5
context.scale(200, 200)
context.set_line_width(0.04)
context.move_to(x, y)
context.curve_to(x1, y1, x2, y2, x3, y3)
context.stroke()
context.set_source_rgba(1, 0.2, 0.2, 0.6)
context.set_line_width(0.02)
context.move_to(x, y)
context.line_to(x1, y1)
context.move_to(x2, y2)
context.line_to(x3, y3)
context.stroke()
# 3. 메모리에 기록된 값을 가져와서 출력
display(SVG(data=f.getvalue()))

그리고 래스터 그래픽을 벡터 그래픽으로 바꿔주는 오픈소스도 있다고 한다
그 오픈소스는 잉크스페이스에서도 내장되고 있어서 아무튼 유용한가 보다
https://github.com/skyrpex/potrace
sudo apt-get install potrace
apt-get install pkg-config libagg-dev libpotrace-dev
pip install pypotrace numpy Pillow