Win32 API 日本語リファレンス
ホームGraphics.Gdi › COLORADJUSTMENT

COLORADJUSTMENT

構造体
サイズx64: 24 バイト / x86: 24 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
caSizeWORD2+0+0構造体のサイズ (バイト単位)。
caFlagsWORD2+2+2

出力イメージをどのように準備するかを指定します。このメンバーには NULL、または次の値の任意の組み合わせを設定できます。

意味
CA_NEGATIVE 元のイメージのネガを表示することを指定します。
CA_LOG_FILTER 出力色の最終濃度に対数関数を適用することを指定します。これにより、輝度が低い場合の色のコントラストが高まります。
caIlluminantIndexWORD2+4+4

イメージを表示する際の標準光源の種類。このメンバーには次のいずれかの値を設定できます。

意味
ILLUMINANT_DEVICE_DEFAULT デバイスの既定値。出力デバイスで使用される標準です。
ILLUMINANT_A タングステンランプ。
ILLUMINANT_B 正午の日光。
ILLUMINANT_C NTSC の昼光。
ILLUMINANT_D50 通常の印刷。
ILLUMINANT_D55 ボンド紙への印刷。
ILLUMINANT_D65 標準の昼光。CRT および写真の標準です。
ILLUMINANT_D75 北窓昼光。
ILLUMINANT_F2 クールホワイトランプ。
ILLUMINANT_TUNGSTEN ILLUMINANT_A と同じです。
ILLUMINANT_DAYLIGHT ILLUMINANT_C と同じです。
ILLUMINANT_FLUORESCENT ILLUMINANT_F2 と同じです。
ILLUMINANT_NTSC ILLUMINANT_C と同じです。
caRedGammaWORD2+6+6転送元の色の赤の原色に対する n 乗のガンマ補正値を指定します。値は 2500 から 65,000 の範囲でなければなりません。10,000 はガンマ補正を行わないことを意味します。
caGreenGammaWORD2+8+8転送元の色の緑の原色に対する n 乗のガンマ補正値を指定します。値は 2500 から 65,000 の範囲でなければなりません。10,000 はガンマ補正を行わないことを意味します。
caBlueGammaWORD2+10+10転送元の色の青の原色に対する n 乗のガンマ補正値を指定します。値は 2500 から 65,000 の範囲でなければなりません。10,000 はガンマ補正を行わないことを意味します。
caReferenceBlackWORD2+12+12転送元の色に対する黒の基準値。これより暗い色はすべて黒として扱われます。値は 0 から 4000 の範囲でなければなりません。
caReferenceWhiteWORD2+14+14転送元の色に対する白の基準値。これより明るい色はすべて白として扱われます。値は 6000 から 10,000 の範囲でなければなりません。
caContrastSHORT2+16+16転送元オブジェクトに適用するコントラストの量。値は -100 から 100 の範囲でなければなりません。0 はコントラストを調整しないことを意味します。
caBrightnessSHORT2+18+18転送元オブジェクトに適用する明度の量。値は -100 から 100 の範囲でなければなりません。0 は明度を調整しないことを意味します。
caColorfulnessSHORT2+20+20転送元オブジェクトに適用する色鮮やかさの量。値は -100 から 100 の範囲でなければなりません。0 は色鮮やかさを調整しないことを意味します。
caRedGreenTintSHORT2+22+22転送元オブジェクトに適用する赤または緑の色合い調整の量。値は -100 から 100 の範囲でなければなりません。正の値は赤方向に、負の値は緑方向に調整します。0 は色合いを調整しないことを意味します。

公式ドキュメント

COLORADJUSTMENT 構造体は、ストレッチモードが HALFTONE のときに StretchBlt 関数および StretchDIBits 関数が使用する色調整値を定義します。色調整値は SetColorAdjustment 関数を呼び出して設定できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// COLORADJUSTMENT  (x64 24 / x86 24 バイト)
typedef struct COLORADJUSTMENT {
    WORD caSize;
    WORD caFlags;
    WORD caIlluminantIndex;
    WORD caRedGamma;
    WORD caGreenGamma;
    WORD caBlueGamma;
    WORD caReferenceBlack;
    WORD caReferenceWhite;
    SHORT caContrast;
    SHORT caBrightness;
    SHORT caColorfulness;
    SHORT caRedGreenTint;
} COLORADJUSTMENT;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct COLORADJUSTMENT
{
    public ushort caSize;
    public ushort caFlags;
    public ushort caIlluminantIndex;
    public ushort caRedGamma;
    public ushort caGreenGamma;
    public ushort caBlueGamma;
    public ushort caReferenceBlack;
    public ushort caReferenceWhite;
    public short caContrast;
    public short caBrightness;
    public short caColorfulness;
    public short caRedGreenTint;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure COLORADJUSTMENT
    Public caSize As UShort
    Public caFlags As UShort
    Public caIlluminantIndex As UShort
    Public caRedGamma As UShort
    Public caGreenGamma As UShort
    Public caBlueGamma As UShort
    Public caReferenceBlack As UShort
    Public caReferenceWhite As UShort
    Public caContrast As Short
    Public caBrightness As Short
    Public caColorfulness As Short
    Public caRedGreenTint As Short
End Structure
import ctypes
from ctypes import wintypes

class COLORADJUSTMENT(ctypes.Structure):
    _fields_ = [
        ("caSize", ctypes.c_ushort),
        ("caFlags", ctypes.c_ushort),
        ("caIlluminantIndex", ctypes.c_ushort),
        ("caRedGamma", ctypes.c_ushort),
        ("caGreenGamma", ctypes.c_ushort),
        ("caBlueGamma", ctypes.c_ushort),
        ("caReferenceBlack", ctypes.c_ushort),
        ("caReferenceWhite", ctypes.c_ushort),
        ("caContrast", ctypes.c_short),
        ("caBrightness", ctypes.c_short),
        ("caColorfulness", ctypes.c_short),
        ("caRedGreenTint", ctypes.c_short),
    ]
#[repr(C)]
pub struct COLORADJUSTMENT {
    pub caSize: u16,
    pub caFlags: u16,
    pub caIlluminantIndex: u16,
    pub caRedGamma: u16,
    pub caGreenGamma: u16,
    pub caBlueGamma: u16,
    pub caReferenceBlack: u16,
    pub caReferenceWhite: u16,
    pub caContrast: i16,
    pub caBrightness: i16,
    pub caColorfulness: i16,
    pub caRedGreenTint: i16,
}
import "golang.org/x/sys/windows"

type COLORADJUSTMENT struct {
	caSize uint16
	caFlags uint16
	caIlluminantIndex uint16
	caRedGamma uint16
	caGreenGamma uint16
	caBlueGamma uint16
	caReferenceBlack uint16
	caReferenceWhite uint16
	caContrast int16
	caBrightness int16
	caColorfulness int16
	caRedGreenTint int16
}
type
  COLORADJUSTMENT = record
    caSize: Word;
    caFlags: Word;
    caIlluminantIndex: Word;
    caRedGamma: Word;
    caGreenGamma: Word;
    caBlueGamma: Word;
    caReferenceBlack: Word;
    caReferenceWhite: Word;
    caContrast: Smallint;
    caBrightness: Smallint;
    caColorfulness: Smallint;
    caRedGreenTint: Smallint;
  end;
const COLORADJUSTMENT = extern struct {
    caSize: u16,
    caFlags: u16,
    caIlluminantIndex: u16,
    caRedGamma: u16,
    caGreenGamma: u16,
    caBlueGamma: u16,
    caReferenceBlack: u16,
    caReferenceWhite: u16,
    caContrast: i16,
    caBrightness: i16,
    caColorfulness: i16,
    caRedGreenTint: i16,
};
type
  COLORADJUSTMENT {.bycopy.} = object
    caSize: uint16
    caFlags: uint16
    caIlluminantIndex: uint16
    caRedGamma: uint16
    caGreenGamma: uint16
    caBlueGamma: uint16
    caReferenceBlack: uint16
    caReferenceWhite: uint16
    caContrast: int16
    caBrightness: int16
    caColorfulness: int16
    caRedGreenTint: int16
struct COLORADJUSTMENT
{
    ushort caSize;
    ushort caFlags;
    ushort caIlluminantIndex;
    ushort caRedGamma;
    ushort caGreenGamma;
    ushort caBlueGamma;
    ushort caReferenceBlack;
    ushort caReferenceWhite;
    short caContrast;
    short caBrightness;
    short caColorfulness;
    short caRedGreenTint;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; COLORADJUSTMENT サイズ: 24 バイト(x64)
dim st, 6    ; 4byte整数×6(構造体サイズ 24 / 4 切り上げ)
; caSize : WORD (+0, 2byte)  wpoke st,0,値  /  値 = wpeek(st,0)
; caFlags : WORD (+2, 2byte)  wpoke st,2,値  /  値 = wpeek(st,2)
; caIlluminantIndex : WORD (+4, 2byte)  wpoke st,4,値  /  値 = wpeek(st,4)
; caRedGamma : WORD (+6, 2byte)  wpoke st,6,値  /  値 = wpeek(st,6)
; caGreenGamma : WORD (+8, 2byte)  wpoke st,8,値  /  値 = wpeek(st,8)
; caBlueGamma : WORD (+10, 2byte)  wpoke st,10,値  /  値 = wpeek(st,10)
; caReferenceBlack : WORD (+12, 2byte)  wpoke st,12,値  /  値 = wpeek(st,12)
; caReferenceWhite : WORD (+14, 2byte)  wpoke st,14,値  /  値 = wpeek(st,14)
; caContrast : SHORT (+16, 2byte)  wpoke st,16,値  /  値 = wpeek(st,16)
; caBrightness : SHORT (+18, 2byte)  wpoke st,18,値  /  値 = wpeek(st,18)
; caColorfulness : SHORT (+20, 2byte)  wpoke st,20,値  /  値 = wpeek(st,20)
; caRedGreenTint : SHORT (+22, 2byte)  wpoke st,22,値  /  値 = wpeek(st,22)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global COLORADJUSTMENT
    #field short caSize
    #field short caFlags
    #field short caIlluminantIndex
    #field short caRedGamma
    #field short caGreenGamma
    #field short caBlueGamma
    #field short caReferenceBlack
    #field short caReferenceWhite
    #field short caContrast
    #field short caBrightness
    #field short caColorfulness
    #field short caRedGreenTint
#endstruct

stdim st, COLORADJUSTMENT        ; NSTRUCT 変数を確保
st->caSize = 100
mes "caSize=" + st->caSize