画像を読む 05

画像データを macOSのスピーチ機能で読むプログラムを書いています。前ページでも書いたように、開発の大体の方向はありますが、最終的な形を現在考えている訳ではありません。制作ノートと思って読んでください。



カラーネーム

LiveCodeのファンクション「colorNames」で、少し色彩の名前について考えてみます。これは「X11 Color Names」が元になって、LiveCodeに取り入れられているファンクションです。ウェブ・カラーの標準的な色の名称になっています。実際にはいくつか色の名称が、HTML, CSSと違うものもあるそうですが、ここでは大きな問題ではありません。

この色彩名を画像データでどう使って良いのか今の処不明ですが、取り敢えず少し整理した状態で考えたいので、今回はその整理の工程。

左上にあるボタン「tColorNames」のスクリプト。ファンクション「the colorNames」の552行のカラーネームを、フィールド1に書き出します。

on mouseUp
   put "" into fld 1
   wait 60
   set the cursor to watch
   put the colornames into fld 1
end mouseUp

ビデオではラインをハイライトして、英語とフランス語で読み上げています。「03スピーチ」でも使っているコマンド「readText」をスタックに書き込みます。スタック名を省いています。

-- スタック内に書き込むコマンド

command readText pText
   put item 1 of the label of btn "tName" into tName
   put the hilitedButtonName of grp "readSpeed"into tSpeed
   revSetSpeechVoice tName
   revSetSpeechVolume 130
   revSetSpeechSpeed tSpeed
   revspeak pText
end readText

-- カード左下にあるボタン「speechColorNames」に書いたスクリプト

on mouseUp
   -- ハイライトにしたテキストを it に収納
   get the selectedText
   if it is empty then exit to top
   repeat for each line tLIne in it
      if the mouseClick is true then exit to top
      readText tLIne
      wait 120
   end repeat
end mouseUp	

スクリプトにこの色彩名で色指定はできますが、実際の色彩がわかりません。次のボタン「RGB, ColorNames & Colors」で、それぞれのカラーネームのRGB値と実際の色を表示しす。

on mouseUp
   put "" into fld 2
   set the cursor to watch
   
   -- 全てのカラーネームを tColorLinesに
   put the colornames into tColorLines
   -- 何行あるか
   put the num of lines of tColorLines into tNum
  
  -- 行数回リピートする
   repeat with i=1 to tNum
   -- 始めに色彩を表示させる記号「 ◼︎」を色名の最後につける
      put line i of tColorLines &" ◼︎" &cr after fld 2
      
      -- 最後の文字(記号 ◼)をその色彩名にする
      set the forecolor of char -1 of line i of fld 2 \
      		to line i of tColorLines
      
      -- 記号に設定した色彩のRGB値を読み取って
      -- 書き出してあるカラーネームの前に入れてタブでアキを取る
      put the forecolor of char -1 of line i of fld 2 \
      		& tab before line i of fld 2 
   end repeat
end mouseUp

このデータをどう使っていいか現在はまだ不明ですが、とりあえずRGB値の数字の大きい順にソートしておきます。次のボタン「sortByItem1 _ R」のスクリプト。

on mouseUp
   put "" into fld 3
   set cursor to watch
   
   -- フィールド2にあるデータをtColorNamesに収納
   put fld 2 into tColorNames
   
   -- アイテム1(R値)を数字の大きい順に並び替え
   sort lines of tColorNames descending numeric
   
   -- 並び替えたデータをフィールド3に入れる
   put tColorNames into fld 3
end mouseUp

同じく、次のボタン「sortByItem2 _ G」のスクリプト。
	
on mouseUp
   put "" into fld 4
   set cursor to watch
   put fld 3 into tColorNames
   
   repeat for each line tLine in tColorNames  
   -- R値とカンマを取り除く、アイテム2のG値を始めの値に
      put "" into item 1 of tLine
      put "" into char 1 of tLine
      put tLine & cr after tTotalLines
   end repeat
   
   -- G値を数字の大きい順に並び替え
   sort lines of tTotalLines descending numeric
   
   -- 並び替えたデータをフィールド4に入れる
   put tTotalLines into fld 4
end mouseUp

同じく、次のボタン「sortByItem3 _ B」のスクリプト。
	
on mouseUp
   put "" into fld 5
   set cursor to watch
   put fld 4 into tColorNames
   
   repeat for each line tLine in tColorNames
   -- G値とカンマを取り除く、アイテム3のB値を始めの値に
      put "" into item 1 of tLine
      put "" into char 1 of tLine
      put tLine & cr after tTotalLines
   end repeat
   
   -- B値を数字の大きい順に並び替え
   sort lines of tTotalLines descending numeric
   
   -- 並び替えたデータをフィールド5に入れる
   put tTotalLines into fld 5
end mouseUp	




モザイクのデータ

カラーキューブ




アーチスト:小島健治 / Artist: Kenji Kojima

アーチスト:小島健治
kenjikojima.com


クリエイティブ・コモンズ
Attribution-NonCommercial-NoDerivatives

Click and Go to PayPal

日本からのドネーションは こちらをクリック

LiveCode 6 初心者開発入門