2017-03-15 14 views
0

かなりシンプルな質問ですが、ドキュメントはどこにも見つかりません。 canvas.toDataURL()にファイルをPNG-8として保存するように指示するにはどうすればよいですか?toDataURLを使用してPNG8として設定する方法は?

thumbnail = canvas.toDataURL(); 

私は、JPEGを取得するには、 "画像/ JPEG" を渡すことができます知っているが、どのようにPNG-8はどうですか?

+0

非常に簡単な答えです:あまりにもあなたがすることはできません。 sprcsはthosオプションを追加しませんでした。 imageData(IIRCには、それを行ったいくつかのjsプロジェクトがあります)からpngを自分でエンコードする必要があります。 – Kaiido

答えて

0

今日の主要なブラウザでは、パレットインデックス付きPNGを作成するための一般的な組み込みメソッドはありません。ブラウザはrequired to support basic PNGの24ビットのビットマップとアルファのみです。

希望のフォーマットを自由にサポートすることはできますが、ブラウザ間での互換性はほとんどありません(いくつかの例外は存在しますが、SafariではTIFF、FirefoxではICO )。

これを行うには、ピクセルを抽出し、色をパレットに量子化し、ファイルをコンパイルし、ビットマップをフォーマットし、エンコードし、圧縮してから保存する必要があります。それは実行可能ですが、それは独自のプロジェクトです。

は、必要に応じてサービスのような TinyPNGに見[私が所属していませんよ]。彼らは、プログラムで、あなたの通常のPNG画像を送信するために使用することができ、通常は「PNG8」を意味、PNG画像が返さ最小限に抑えている API提供します。

関連する問題