or 画像ファイルをドロップ
or 画像を貼り付け (Ctrl + v)
or 画像を貼り付け (Ctrl + v)
#FFFFFF | |
rgb(255,255,255) | |
hsv(0°, 0%, 100%) |
クリックした色を記録します。
RGB(カラーコード)
光の三原色と呼ばれる赤(Red)、緑(Green)、青(Blue)を混ぜて色を表現します。ディスプレイなどで使われており、機械にわかりやすい表現です。RGB値を16進数で表記した文字列をカラーコードやウェブカラーと呼ぶこともあります。
HSV
色相(Hue / 色の種類)、彩度(Saturation / 鮮やかさ)、明度(Value / 明るさ)の三つの成分で色を表現します。人間にわかりやすい表現です。
ペイントでもRGBなどを取得できるが手順が少々面倒。
- ペイントで画像を開く
- 「色の選択」を選ぶ
- スポイトしたい箇所をクリック
- 「色の編集」を開く
- 10進数のRGB値、HSV値が出る
- 16進数のカラーコードが欲しければ別途変換
と、だるいのでツールにしてみました。クリップボードからcanvasに貼り付けるのが地味に苦労して、けっきょくIEだけ諦めました。IEもうお前は知らん。
このサイトはGatsby.js (React) なので、こんな感じで実装してみました。もっといい方法があったら教えて頂けると嬉しいです。
componentDidMount() {
document.addEventListener("paste", this.onPaste, false);
}
onPaste(e) {
var data = e.clipboardData;
if (!data
|| !data.types
|| data.types.length !== 1
|| data.types[0] !== 'Files') {
return true;
}
var file = data.items[0].getAsFile();
var img = new Image();
img.onload = function() {
var cvs = document.getElementById('my_canvas');
var ctx = cvs.getContext('2d');
// キャンバスクリア
ctx.clearRect(0, 0, cvs.width, cvs.height);
if (cvs.width < img.width || cvs.height < img.height) {
// canvasサイズを超えている場合、アスペクト比を維持して縮小
var scale = Math.min(cvs.width / img.width, cvs.height / img.height);
ctx.drawImage(img, 0, 0, img.width * scale, img.height * scale);
} else {
ctx.drawImage(img, 0, 0);
}
};
img.src = window.URL.createObjectURL(file);
}