0

CMYKカラー値(0、0.58、1、0)があります。次に、C#を使用して同等の整数に変換する必要があります。ビット単位演算子を使用することは可能だと思いますが、確かではありません。

どのように同じことを達成できるか私を助けてください。

ありがとう、パワン

4

1 に答える 1

2

これを試して:

float c = 0.0;
float y = 0.58;
float m = 1.0;
float k = 0.0;

uint intColor = (uint)(c * 255) << 24;
intColor += (uint)(y * 255) << 16;
intColor += (uint)(m * 255) << 8;
intColor += (uint)(k * 255) << 0;

intColorこれは、それぞれ色の C、Y、M、および K コンポーネントのバイト値を含む 32 ビットの符号なし整数になります。整数からコンポーネントに変換するには、すべての演算とその順序を逆にするだけです。

float c = ((intColor & 0xFF000000) >> 24) / 255.0f;
float y = ((intColor & 0x00FF0000) >> 16) / 255.0f;
float m = ((intColor & 0x0000FF00) >> 8) / 255.0f;
float k = ((intColor & 0x000000FF) >> 0) / 255.0f;
于 2012-09-02T07:50:02.950 に答える