2017-03-15 3 views
0

아주 간단한 질문이지만 어디서나 설명서를 찾을 수 없습니다. canvas.toDataURL()에 파일을 PNG-8로 저장하도록 지시하려면 어떻게합니까?toDataURL을 사용하여 PNG8로 설정하는 방법은 무엇입니까?

thumbnail = canvas.toDataURL(); 

jpeg를 얻으려면 "image/jpeg"를 전달할 수 있지만 PNG-8은 어떨까요?

+0

아주 간단한 대답 : unfotunately 당신은 할 수 없다; sprcs가 thos 옵션을 추가하지 않았습니다. 당신은 imageData (IIRC 거기에서 그 일을 몇 가지 js 프로젝트가 있었다)에서 png 자신을 인코딩해야 할 것입니다 – Kaiido

답변

0

오늘날 주요 브라우저에서 팔레트 색인 PNG를 만드는 일반적인 방법은 없습니다. 브라우저는 required to support basic PNG이며 24 비트 비트 맵 및 알파입니다.

자유롭게 원하는 형식을 추가로 지원할 수 있지만 브라우저 간 호환이 불가능할 수 있습니다 (일부 예외는 있지만 Safari에서는 TIFF, Firefox에서는 ICO 등 많이 사용되지 않습니다)).

오늘 작동하려면 픽셀을 추출하고 색상을 팔레트로 양자화 한 다음 파일을 컴파일하고 비트 맵을 포맷하고 인코딩 및 압축 한 다음 저장해야합니다. 그것은 가능하지만 그것은 독자적인 프로젝트입니다.

[선택 사항 : TinyPNG] [관련 없음]과 같은 서비스를 선택합니다. 그들은을 제공하여 프로그래밍 방식으로 일반 PNG를 보내고 리턴 된 PNG를 최소화합니다. 일반적으로 "PNG8"을 의미합니다.

관련 문제