aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/api/clipboard/setimagedata/index.html
blob: 457e55da18d0897d828b8ba2e675477e8734301e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
---
title: clipboard.setImageData()
slug: Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData
tags:
  - API
  - Add-ons
  - Clipboard
  - Extensions
  - Method
  - Referece
  - WebExtensions
  - setImageData
translation_of: Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData
---
<div>{{AddonSidebar()}}</div>

<p>Copie une image dans le presse-papiers. L'image est recodée avant d'être écrite dans le presse-papiers. Si l'image n'est pas valide, le presse-papiers n'est pas modifié.</p>

<p>L'image est fournie en tant que <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer">ArrayBuffer</a></code> contenant l'image codée. Les formats JPEG et PNG sont pris en charge.</p>

<p>Bien que cette API soit basée sur l'API <code><a href="https://developer.chrome.com/apps/clipboard">clipboard.setImageData()</a></code> de Chrome, il existe certaines différentes :</p>

<ul>
 <li>L'API Chrome est réservée aux applications et non aux extensions.</li>
 <li>Cette API nécessite uniquement la permission <code>"clipboardWrite"</code>, tandis que la version Chrome nécessite également la permission <code>"clipboard"</code>.</li>
 <li>L'API de Chrome utilise des rappels et cette API ne prend en charge que les promises.</li>
 <li>Cette API ne prend pas en charge le paramètre <code>additionalItems</code>.</li>
</ul>

<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>

<h2 id="Syntaxe">Syntaxe</h2>

<pre class="syntaxbox brush:js">browser.clipboard.setImageData(<em>imageData</em>, <em>imageType</em>)
</pre>

<h3 id="Paramètres">Paramètres</h3>

<dl>
 <dt><code>imageData</code></dt>
 <dd><code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer">ArrayBuffer</a></code>. Les données de l'image codées.</dd>
 <dt><code>imageType</code></dt>
 <dd>Un {{domxref("DOMString")}} indiquant le type d'image contenue dans le fichier <code>imageData</code>: <code>"png"</code> ou <code>"jpeg"</code>.</dd>
</dl>

<h3 id="Valeur_de_retour">Valeur de retour</h3>

<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui sera remplie sans arguments si l'opération a réussi, ou rejetée, s'il y a une erreur (par exemple parce que les données ne représentaient pas une image valide).</p>

<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>

<p>{{Compat("webextensions.api.clipboard.setImageData", 10)}}</p>

<h2 id="Exemples">Exemples</h2>

<p>Copiez une image distante :</p>

<pre class="brush: js" id="ct-71"><span class="quote">// requires:
// * the host permission for "<a href="https://cdn.mdn.mozilla.net/" rel="nofollow">https://cdn.mdn.mozilla.net/</a>*"
// * the API permission "clipboardWrite"

fetch('<a class="hoverZoomLink" href="https://cdn.mdn.mozilla.net/static/img/favicon144.png" rel="nofollow">https://cdn.mdn.mozilla.net/static/img/favicon144.png</a>')
.then(response =&gt; response.arrayBuffer())
.then(buffer =&gt; browser.clipboard.setImageData(buffer, 'png'));</span></pre>

<p>Copiez une image fournie avec l'extension :</p>

<pre class="brush: js" id="ct-70">// requires <span class="quote">the API permission </span>"clipboardWrite"

fetch(browser.runtime.getURL('image.png'))
.then(response =&gt; response.arrayBuffer())
.then(buffer =&gt; browser.clipboard.setImageData(buffer, 'png'));</pre>

<p>{{WebExtExamples}}</p>

<div class="note"><strong>Remerciements :</strong>

<p>Cette API est basée sur l'API Chromium <a href="https://developer.chrome.com/apps/clipboard"><code>chrome.clipboard</code></a>.</p>
</div>