iTunes

iTunes < etc

Panic、iTunes 11のカラーアルゴリズムの仕組みを解説(Web実装方法などの話題で盛り上がり)

Panicが、iTunes 11のアルバムアートワークの色に合わせてアルバム情報のバックグラウンドカラーが変わる仕組みを解説した「iTunes 11 and Colors」を公開しています。

これは、アルバムアートワークの左端側の色から一番多く使用されている色を抽出し、それを背景色に設定することでアルバムアートワークと馴染ませているそうです。

また、iTunes 11は、アルバムアートワークの枠線も分析していて、例えば、枠線の外側が白、内側が青といった場合、枠線部分の外側を消し、内側のみのアートワークのみを表示して、それに背景色を馴染ませるといった高度な技術を使用しているそうです。

背景色が決定されると、アルバムアートワークの中から、その背景色と対象となる色を抽出し、それをテキストカラーとして使用する仕組みになっているそうです。


その分析結果を元に、アルバムアートワークから背景色とテキスト色を抽出するXcodeデモプロジェクト「ColorArt」が配布されています。


エントリーに対するコメントでは、カラーピッカー技術に関する話題が盛り上がっていて、これをWeb上でも再現する「itunes-colors」や「ColorTunes」も登場しています。

ColorTunesをWeb実装したデモは「ColorTunes」で確認出来ます。



この記事をシェアする

おすすめ記事

この記事のハッシュタグ から関連する記事を表示しています。

500 Internal Server Error.

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '18635')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '18635')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '18635')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '18635')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '18635')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '18635')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')