clipboard.setImageData()

画像をクリップボードにコピーします。イメージはクリップボードに書き込まれる前に再エンコードされます。画像が無効な場合、クリップボードは修正されません。

画像はエンコードされた画像を格納した ArrayBuffer として指定されます。 JPEG と PNG 形式に対応しています。

この API は Chrome の clipboard.setImageData() API をベースにしていますが、いくつかの違いがあります。

  • Chrome API はアプリ専用で、拡張機能用ではありません。
  • この API では "clipboardWrite" 権限のみが要求されますが、 Chrome 版では "clipboard" 権限も要求されます。
  • Chrome の API はコールバックを使用しており、この API はプロミスのみに対応しています。
  • この API は additionalItems 引数には対応していません。

これは Promise を返す非同期関数です。

書式

js
browser.clipboard.setImageData(imageData, imageType)

引数

imageData

クリップボードにコピーするエンコードされた画像データを格納した ArrayBuffer です。

imageType

imageData に格納した画像の型を示す文字列、 "png" または "jpeg" です。

返値

Promise で、操作が成功した場合は引数なしで解決され、エラー(例えば、データが有効な画像を表していないなど)があった場合は拒否されます。

ブラウザーの互換性

BCD tables only load in the browser

リモートの画像をコピーします。

js
// requires:
// * the host permission for "https://cdn.mdn.mozilla.net/*"
// * the API permission "clipboardWrite"

fetch("https://cdn.mdn.mozilla.net/static/img/favicon144.png")
  .then((response) => response.arrayBuffer())
  .then((buffer) => browser.clipboard.setImageData(buffer, "png"));

拡張機能にバンドルされている画像をコピーします。

js
// requires the API permission "clipboardWrite"

fetch(browser.runtime.getURL("image.png"))
  .then((response) => response.arrayBuffer())
  .then((buffer) => browser.clipboard.setImageData(buffer, "png"));

メモ: この API は Chromium の chrome.clipboard API をベースにしています。