1 | # electron-color-picker
|
2 |
|
3 | [![i:npm]][l:npm]
|
4 | [![i:size]][l:size]
|
5 | [![i:lint]][l:lint]
|
6 | [![i:npm-dev]][l:npm]
|
7 |
|
8 | Pick color from Desktop, suitable for use with Electron.
|
9 |
|
10 | [i:npm]: https://img.shields.io/npm/v/electron-color-picker.svg?colorB=blue
|
11 | [i:npm-dev]: https://img.shields.io/npm/v/electron-color-picker/dev.svg
|
12 | [l:npm]: https://npm.im/electron-color-picker
|
13 | [i:size]: https://packagephobia.now.sh/badge?p=electron-color-picker
|
14 | [l:size]: https://packagephobia.now.sh/result?p=electron-color-picker
|
15 | [i:lint]: https://img.shields.io/badge/code_style-standard_ES6+-yellow.svg
|
16 | [l:lint]: https://standardjs.com
|
17 |
|
18 | #### Note
|
19 |
|
20 | On Windows & MacOS will use our native color-picker.
|
21 |
|
22 | On Linux will use [SCROT][l:scrot] to get screenshot and pick color from it.
|
23 | The idea is directly borrowed from package [desktop-screenshot][l:desktop-screenshot].
|
24 |
|
25 | Error will be thrown:
|
26 | - when try to start multiple color-picker.
|
27 | - on unsupported platform.
|
28 |
|
29 | #### Example
|
30 |
|
31 | 📁 [example/](example/)
|
32 |
|
33 | basic implementation of using DOM Button
|
34 | to trigger color picking
|
35 | and pass result back through ipc
|
36 |
|
37 | try example with:
|
38 | ```bash
|
39 | cd example
|
40 | npm install
|
41 | npm start
|
42 | ```
|
43 |
|
44 | #### Usage
|
45 |
|
46 | first add this package to your project:
|
47 | ```bash
|
48 | npm install electron-color-picker
|
49 | ```
|
50 |
|
51 | sample function `saveColorToClipboard()`:
|
52 | ```js
|
53 | const { clipboard } = require('electron')
|
54 | const { getColorHexRGB } = require('electron-color-picker')
|
55 |
|
56 | const saveColorToClipboard = async () => {
|
57 | // color may be `#0099ff` or `` (pick cancelled with ESC)
|
58 | const color = await getColorHexRGB().catch((error) => {
|
59 | console.warn(`[ERROR] getColor`, error)
|
60 | return ''
|
61 | })
|
62 |
|
63 | console.log(`getColor: ${color}`)
|
64 | color && clipboard.writeText(color)
|
65 | }
|
66 | ```
|
67 |
|
68 | [l:scrot]: https://en.wikipedia.org/wiki/Scrot
|
69 | [l:desktop-screenshot]: https://npm.im/desktop-screenshot |
\ | No newline at end of file |