ホーム › Graphics.Gdi › COLORADJUSTMENT
COLORADJUSTMENT
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| caSize | WORD | 2 | +0 | +0 | 構造体のサイズ (バイト単位)。 | ||||||||||||||||||||||||||||
| caFlags | WORD | 2 | +2 | +2 | 出力イメージをどのように準備するかを指定します。このメンバーには NULL、または次の値の任意の組み合わせを設定できます。
| ||||||||||||||||||||||||||||
| caIlluminantIndex | WORD | 2 | +4 | +4 | イメージを表示する際の標準光源の種類。このメンバーには次のいずれかの値を設定できます。
| ||||||||||||||||||||||||||||
| caRedGamma | WORD | 2 | +6 | +6 | 転送元の色の赤の原色に対する n 乗のガンマ補正値を指定します。値は 2500 から 65,000 の範囲でなければなりません。10,000 はガンマ補正を行わないことを意味します。 | ||||||||||||||||||||||||||||
| caGreenGamma | WORD | 2 | +8 | +8 | 転送元の色の緑の原色に対する n 乗のガンマ補正値を指定します。値は 2500 から 65,000 の範囲でなければなりません。10,000 はガンマ補正を行わないことを意味します。 | ||||||||||||||||||||||||||||
| caBlueGamma | WORD | 2 | +10 | +10 | 転送元の色の青の原色に対する n 乗のガンマ補正値を指定します。値は 2500 から 65,000 の範囲でなければなりません。10,000 はガンマ補正を行わないことを意味します。 | ||||||||||||||||||||||||||||
| caReferenceBlack | WORD | 2 | +12 | +12 | 転送元の色に対する黒の基準値。これより暗い色はすべて黒として扱われます。値は 0 から 4000 の範囲でなければなりません。 | ||||||||||||||||||||||||||||
| caReferenceWhite | WORD | 2 | +14 | +14 | 転送元の色に対する白の基準値。これより明るい色はすべて白として扱われます。値は 6000 から 10,000 の範囲でなければなりません。 | ||||||||||||||||||||||||||||
| caContrast | SHORT | 2 | +16 | +16 | 転送元オブジェクトに適用するコントラストの量。値は -100 から 100 の範囲でなければなりません。0 はコントラストを調整しないことを意味します。 | ||||||||||||||||||||||||||||
| caBrightness | SHORT | 2 | +18 | +18 | 転送元オブジェクトに適用する明度の量。値は -100 から 100 の範囲でなければなりません。0 は明度を調整しないことを意味します。 | ||||||||||||||||||||||||||||
| caColorfulness | SHORT | 2 | +20 | +20 | 転送元オブジェクトに適用する色鮮やかさの量。値は -100 から 100 の範囲でなければなりません。0 は色鮮やかさを調整しないことを意味します。 | ||||||||||||||||||||||||||||
| caRedGreenTint | SHORT | 2 | +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)
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 Structureimport 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: int16struct 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