2016-05-14 9 views
0

私は2人のJavaScript APIのメンバーは非常に似ていることに気づい:`createImageData()`と `new ImageData()`はどのように違いますか?

をどのように正しく使用するかを選択する必要がありますか。あるいは、それらは本質的に交換可能ですか?

一見違いは、ImageDataコンストラクタが「これは実験的な技術/この技術の仕様が安定していないため...」とマークされている点です。

答えて

1

両方のAPIが目的を達成できる場合は、どちらのAPIも使用できます。 APIに関連する機能や制限がある場合は、これらの事実に基づいて決定する必要があります。 CanvasRenderingContext2D.createImageData()

特長:

  • 古い安定したAPI関数、すべてのブラウザやバージョンでサポートされています。
  • ImageDataオブジェクトを作成するためには、既存の2Dコンテキストオブジェクトが必要です。
  • createImageData(imagedata)の形式を使用してImageDataオブジェクトを複製できます。 new ImageData()

特長:

  • 実験的と考えられているAPI機能。 Microsoft Internet Explorerのどのバージョンでもサポートされていません!
  • ワーカースレッドでImageDataを作成するときに優先します。 (ctx.createImageData()はスレッドが安全でないと考えられていますか?)
  • 最初に2Dコンテキストオブジェクトを必要としない自立型コンストラクタです。
  • new ImageData(array, width, height)の形式を使用すると、ピクセル配列に基づいてImageDataを構築できます。
関連する問題