samsa core
1.0.0
TrueType 글꼴 파일을 처리하기위한 라이브러리.
특징:
이 저장소는 버전 2 개발을위한 것입니다. 버전 1은 Samsa Gui Repo에서 관리됩니다.
필수 단계는 다음과 같습니다.
renderText() 호출하십시오 다음은 디스크에서 filename 로드하고, Samsafont 객체를 작성하고, 특정 위치에 변형 축이 설정된 SamsainStance 객체를 작성하고 String을 hello, world! SVG로서 SVG를 파일 render.svg 에 저장합니다.
const nodeBuffer = fs . readFileSync ( filename ) ;
const arrayBuffer = nodeBuffer . buffer ;
const samsaBuffer = new SamsaBuffer ( arrayBuffer ) ;
const font = new SamsaFont ( samsaBuffer ) ;
const instance = font . instance ( { wght : 900 , wdth : 200 } ) ;
const svg = instance . renderText ( { text : "hello, world!" , fontSize : 72 } ) ;
fs . writeFileSync ( "render.svg" , svg ) ;브라우저에서는 Arraybuffer를 얻고 유사하게 처리합니다. 결과 SVG는 DOM에 삽입 될 수 있습니다.
const samsaBuffer = new SamsaBuffer ( arrayBuffer ) ;
const font = new SamsaFont ( samsaBuffer ) ;
const instance = font . instance ( { wght : 900 , wdth : 200 } ) ;
const svg = instance . renderText ( { text : "hello, world!" , fontSize : 72 } ) ;
document . getElementById ( "myDiv" ) . innerHTML = svg ; 원격 URL에서 글꼴 파일을로드하면 fetch() 사용하여 response.arrayBuffer() 사용하여 Arraybuffer를 얻을 수 있습니다. 글꼴 파일이 브라우저로 드래그 된 경우 e.dataTransfer.items 배열을 열거하여 ArrayBuffer를 얻습니다. 여기서 e 드롭 이벤트입니다. 배열의 각 item 에 대해 (여러 항목이있을 수 있음), kind 속성이 file 과 같으면, set file = item.getAsFile() 설정하면 약속 file.arrayBuffer() ArrayBuffer를 산출합니다.
이 다이어그램은 Samsa가 Arraybuffer에서 Samsafont 객체를 만드는 방법을 보여주고 Samsafont에서 Samsainstance를 생성 한 다음 텍스트를 SVG로 렌더링합니다.
흐름도 TD
f1 [ttf] -> a [arraybuffer]
f2 [woff2] -> a [arraybuffer]
A [Arraybuffer] -> B [Samsabuffer]
B-> C [Samsafont]
b [Samsabuffer] -> | "Samsabuffer.decodewoff2 ()"| C [Samsafont]
C-> | "samsafont.instance (axissettings)"| D (Samsainstance)
d-> | "Samsainstance.rendertext ({text : mytext, fontsize : mysize, color : mycolor})"| E (SVG)