getconfigcolor()No.11915
Jigoro さん 02/05/23 21:26
 
初めまして、Jigoroと申します。

現在秀丸3.15を使用していますが、
マクロのgetconfigcolor()関数の戻り値がおかしいように思います。
具体的には、Redの値とBlueの値が逆になってしまいます。
RGBというくらいですからRead, Green, Blueの順だと思うのですが…。

ご検討お願いします。

[ ]
RE:11915 getconfigcolor()No.11918
アルビレオ さん 02/05/24 06:46
 
>初めまして、Jigoroと申します。
>
>現在秀丸3.15を使用していますが、
>マクロのgetconfigcolor()関数の戻り値がおかしいように思います。
>具体的には、Redの値とBlueの値が逆になってしまいます。
>RGBというくらいですからRead, Green, Blueの順だと思うのですが…。

これはWindowsが内部で使用しているカラーコードそのままだと思います。
って、Windowsの中で場合によって両方の並びがあるのでちょっとややこしいですが。

それにしても、RGBの並び順はヘルプに書いておかないと混乱しますね。
せめて白と黒以外の例が書いてあればよかったんですが。(灰色じゃ意味ないけど)

#バイト単位でメモリをいじるプログラマとしてはRが下位のほうが好みです。

[ ]
RE:11915 getconfigcolor()No.11919
WIZ さん 02/05/24 10:18
 
WIZです。
メールでやってみよう。上手くいくかな?

>マクロのgetconfigcolor()関数の戻り値がおかしいように思います。
>具体的には、Redの値とBlueの値が逆になってしまいます。
>RGBというくらいですからRead, Green, Blueの順だと思うのですが…。
RGBの呼び方は、MS-DOS時代からの通称みたいなもので、
今では、パレットの色を赤/緑/青の三色で色を表すと言う
意味でしかないです。Windowsのパレットが下位ビットか
ら、赤/緑/青の順番みたいですけど。

[ ]
RE:11918 getconfigcolor()No.11920
Jigoro さん 02/05/24 10:49
 
Jigoroです。
アルビレオさん、WIZさんどうもありがとうございます。

>これはWindowsが内部で使用しているカラーコードそのままだと思います。
>って、Windowsの中で場合によって両方の並びがあるのでちょっとややこしいですが。

Windowsの仕様でしたか…。
とりあえず以下のコードで対応することにしました。

wincolor2rgb:
##b = (0xFF0000 & ##1) / 0X010000;
##g =  0x00FF00 & ##1;
##r = (0x0000FF & ##1) * 0X010000;

return ##r | ##b | ##g;

>それにしても、RGBの並び順はヘルプに書いておかないと混乱しますね。
>せめて白と黒以外の例が書いてあればよかったんですが。(灰色じゃ意味ないけど)

そうですね。一言記してあると混乱せずにすみますね。
その点、ご考察お願いします。

[ ]
RE:11920 getconfigcolor()No.11922
秀丸担当 さん 02/05/24 18:49
 
>そうですね。一言記してあると混乱せずにすみますね。
>その点、ご考察お願いします。

了解しました。
明記するようにしておきます。

[ ]