ColorCube.frameworkを呼び出して、指定画像の頻出色を抽出するAppleScriptです。
抽出した色数をダイアログ表示したあとに、抽出した色をchoose colorダイアログで抽出色分だけプレビューします。JPEG画像からの色抽出はうまくできましたが、透過色つきのPNG画像の演算結果は納得行かないものがありました。JPEG推奨です。
ColorCubeには除外色の指定を明示的に(flagsではなく)指定できるはずですが、NSColor’s whiteColor()などで指定してもエラーになったので、flagsによる制御を推奨します。
AppleScript名:ColorCubeによる頻出色の抽出 |
— Created 2018-02-05 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "AppKit" use framework "ColorCube" –https://github.com/pixelogik/ColorCube property CCOnlyBrightColors : 1 property CCOnlyDarkColors : 2 property CCOnlyDistinctColors : 4 property CCOrderByBrightness : 8 property CCOrderByDarkness : 16 property CCAvoidWhite : 32 property CCAvoidBlack : 64 –List up frequent colors from image set aFile to POSIX path of (choose file of type {"public.image"}) set targImage to current application’s NSImage’s alloc()’s initWithContentsOfFile:aFile set colorCube to current application’s CCColorCube’s alloc()’s init() –set imgColors to (colorCube’s extractColorsFromImage:targImage flags:(CCOnlyDistinctColors + CCAvoidWhite)) as list set imgColors to (colorCube’s extractColorsFromImage:targImage flags:(CCAvoidWhite) |count|:4) as list display dialog (length of imgColors) as string repeat with i in imgColors set r2Val to i’s redComponent() set g2Val to i’s greenComponent() set b2Val to i’s blueComponent() set a2Val to i’s alphaComponent() set r2Val to r2Val * 65535 set g2Val to g2Val * 65535 set b2Val to b2Val * 65535 choose color default color {r2Val, g2Val, b2Val} end repeat |
More from my site
(Visited 36 times, 1 visits today)