albumcolors

A JavaScript script to create a 3-color palette based on an image. Inspired by iTunes 11.

  • 所有者: chengyin/albumcolors
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

AlbumColors.js

Screenshot

A JavaScript script to pick 3 colors from an image to create a palette for background and text colors. Inspired by iTunes 11.

Examples

Hosted example showing album info generated from users' last.fm. Try it with your own username for different results.

How to Use

var url = 'http://www.google.com/images/srpr/logo3w.png',
	// You will need a image hosted under the same domain as the script
	albumColors = new AlbumColors(url);

albumColors.getColors(function(colors) {
	console.log(colors);
	// Result: [[254, 254, 254], [2, 138, 14], [4, 171, 21]]
});

Algorithm

The algorithm is simple.

  1. Load image from URL into canvas and get the color array by pixels (AlbumImage)

  2. Find n (default 10) major colors from the pixel array (AlbumColors)

    2.1. Divide color spectrum into 64 buckets

    2.2. Add each color into one of the bucket with a simple approximation

    2.3. Take the 10 buckets with the largest number of colors in them

    2.4. Averaging the colors in the dominating buckets to get the presenting color for the buckets

  3. Among the 10 major colors, pick out 3 (colorChooser)

    3.1. Color distance is simply defined as the Euclidean distance

    3.2. The most dominating color (ColorA) will be the background

    3.3. The color that is most distanced from ColorA, ColorB, will be text color 1

    3.4. The color that is second distanced form ColorA, ColorC, will be text color 2

Limitations

Images are loaded through canvas, therefore we are limited to the same origin rule. In the last.fm example, a simple image proxy is included to bypass the issue.

License

University of Illinois / NCSA

主要指標

概覽
名稱與所有者chengyin/albumcolors
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證
所有者活动
創建於2012-12-13 05:27:27
推送於2013-02-19 14:01:00
最后一次提交2013-02-19 06:00:59
發布數0
用户参与
星數253
關注者數18
派生數29
提交數16
已啟用問題?
問題數4
打開的問題數3
拉請求數1
打開的拉請求數2
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?