1

renderer.domElement.toDataURL("image/png") でスクリーンショットを取得し、ファイルに保存しようとしています。画像はちょうどいいサイズですが、黒です。preserveDrawingBuffer をオンにしました。

ファイルを正しくデコードして保存していると思います。16 進ダンプすると、PNG 形式の正しい最初の文字と、IHDR および IDAT チャンク ヘッダーが表示されるからです。ただし、終了 IEND がありません。

既知の問題はありますか? ヒント?問題がある場合は、Windows 7/Firefox を最新の状態にします。

ありがとう... (これがばかげている場合は申し訳ありません。

4

3 に答える 3

0

JPG形式に切り替えました(ファイルが小さい=>切り捨ての問題が少ない?)それでも機能しないことがわかったので、ここで見つけたこのヒントを試しました

Javascript の canvas.toDataURL() 関数から派生したデータを保存する場合は、空白をプラスに変換する必要があります。そうしないと、デコードされたデータが破損します。

 <?php
      $encodedData = str_replace(' ','+',$encodedData);
      $decodedData = base64_decode($encodedData);
 ?>

これはうまくいきました。ありがとう、メーカル。

このヒントは JPG のみに適用されるようです。+ 置換なしで PNG が正しくデコードされ、それを使用すると破損していることがわかりました。JPG を使用できるので、個人的な問題は解決されます。ただし、正しくデコードされ、切り捨てられていない場合でも、黒ではない PNG は見たことがありません。

いずれにせよ、お粗末な状況のような気がします。+はどうしたの?

于 2013-05-14T04:07:55.473 に答える