|
|
|||||||||
|
|||||||||
|
|
QD51 - 8 ビットより大きいグレイスケール画像の作成(97 年 11 月 17 日)Q: 8 ビットより大きい解像度のグレイスケール画像を作成して、Mac で表示したいと思います。最良の方法を教えてください。
A:
Quickdraw には元来グレイスケール
UInt16 *sourceGreyPtr;
UInt32 *destPixelsPtr;
UInt16 pixel1, pixel2, pixel3, pixel4;
UInt32 pixelOutput;
{
pixel1 = sourceGreyPtr[0];
pixel2 = sourceGreyPtr[1];
pixel3 = sourceGreyPtr[2];
pixel4 = sourceGreyPtr[3];
// 各ピクセルを該当位置までシフトして、補数を取り、該当バイトをマスクする
pixel1 = ~(pixel1 << 16) & 0xFF000000;
pixel2 = ~(pixel2 << 8) & 0x00FF0000;
pixel3 = ~(pixel3) & 0x0000FF00;
pixel4 = ~(pixel4 >8) & 0x000000FF;
pixelOutput = (pixel1 << 24) | (pixel2 << 16) | (pixel3 << 8) | (pixel4);
*destPixelsPtr = pixelOutput;
sourceGreyPtr +=4; // 8 バイト進める
destPixelsPtr +=1; // 4 バイト進める
}
Quickdraw GX には、輝度ベースのカラーモデル (gxGraySpace) が含まれています。
-- Tim Carroll [ Technical Q&A's : Graphics & Media : QuickDraw : QD51 ] |
|