Runtime v2.81 · อัปเดต 30 ก.ย. 2569

Color

แสดงถึงสี ARGB หนึ่งสี และจัดเตรียมตัวช่วยในการสุ่มตัวอย่าง/เปรียบเทียบสี

รูปแบบคำสั่ง

Color(value, /)

พารามิเตอร์สำหรับสร้างออบเจ็กต์

ชื่อคำอธิบาย
valueString | Number
Hex string (`#AARRGGBB`/`#RRGGBB`) or raw ARGB number.
จำเป็น · ระบุตามตำแหน่งเท่านั้น
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Color

พฤติกรรม / ผลข้างเคียง

แสดงถึงสี ARGB หนึ่งสี และจัดเตรียมตัวช่วยในการสุ่มตัวอย่าง/เปรียบเทียบสี

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

cursor = Point(540, 920)
picked = Color.get(cursor)
if picked == "#FFFFFFFF":
    click(cursor, random=6)

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

ไม่มี

ฟิลด์

ชื่อคำอธิบาย
argbNumber
Raw ARGB integer value.
aInt
Alpha channel 0-255.
rInt
Red channel 0-255.
gInt
Green channel 0-255.
bInt
Blue channel 0-255.
hexString
Hex string `#AARRGGBB`.
ตัวอย่างการสร้างออบเจ็กต์
c1 = Color("#FFFFFFFF")
c2 = Color(4294967295)

เมธอด

7 เมธอด

Color.get

อ่านสีจากหน้าจอ: จุด -> สี ภูมิภาค -> อาร์เรย์สี 2D รายการ [จุด] -> รายการสี นี่เป็นตัวอย่างครั้งเดียวทันที หากไม่มีเฟรมหรือตัวอย่างหายไป ให้ส่งคืนสีเริ่มต้นแทนการลองใหม่หรือหยุดสคริปต์

รูปแบบคำสั่ง

Color.get(target, interval=3, default="#00000000")

พารามิเตอร์

ชื่อคำอธิบาย
targetPoint | Region | list[Point]
Sampling target.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
intervalNumber
Grid step (pixels) when target is Region.
ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ
ค่าเริ่มต้น: 3
defaultColor | String | Number
Fallback color returned when screen capture or pixel sampling is unavailable.
ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ
ค่าเริ่มต้น: #00000000

ค่าที่ส่งกลับ

Color | list[list[Color]] | list[Color] — เพย์โหลดสีตัวอย่างตามประเภทเป้าหมาย โดยเติมตัวอย่างที่ขาดหายไปตามค่าเริ่มต้น

พฤติกรรม / ผลข้างเคียง

อ่านสีจากหน้าจอ: จุด -> สี ภูมิภาค -> อาร์เรย์สี 2D รายการ [จุด] -> รายการสี นี่เป็นตัวอย่างครั้งเดียวทันที หากไม่มีเฟรมหรือตัวอย่างหายไป ให้ส่งคืนสีเริ่มต้นแทนการลองใหม่หรือหยุดสคริปต์

การทำงาน

  • รอให้เสร็จ: ใช่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
  • การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข

อ่านตัวอย่างจากเฟรมจับภาพร่วมในผู้เรียก การจับภาพและประมวลผลใช้เวลา โฟลว์อื่นใช้นโยบายจับภาพและแคชร่วมกัน

ตัวอย่าง

c = Color.get(Point(100, 200), default="#FF000000")
grid = Color.get(Region(120, 240, 90, 60), interval=3, default="#00000000")
batch = Color.get([Point(10, 10), Point(20, 20)])

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Color.compare

เปรียบเทียบสองสีด้วยค่าความคลาดเคลื่อน RGB ต่อช่องสัญญาณ การแข่งขันจะผ่านเมื่อ |R1-R2|, |G1-G2| และ |B1-B2| เท่านั้น มีทั้งหมด <= ความอดทน

รูปแบบคำสั่ง

Color.compare(a, b, tolerance=0)

พารามิเตอร์

ชื่อคำอธิบาย
aColor | String | Number
First color.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
bColor | String | Number
Second color.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
toleranceNumber
Allowed per-channel difference (0-255). Practical start: 4-8 for near-identical UI shades, 10-16 for anti-alias/compression variation.
ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ
ค่าเริ่มต้น: 0

ค่าที่ส่งกลับ

Boolean — เป็นจริงเมื่อช่อง RGB ทั้งหมดอยู่ในเกณฑ์ที่ยอมรับได้ คำแนะนำฉบับย่อ: 0 = ตรงทั้งหมด 4-8 = เกือบเท่ากัน 10-16 = การจับคู่ที่ยอมรับได้ >24 = หลวมมาก

พฤติกรรม / ผลข้างเคียง

เปรียบเทียบสองสีด้วยค่าความคลาดเคลื่อน RGB ต่อช่องสัญญาณ การแข่งขันจะผ่านเมื่อ |R1-R2|, |G1-G2| และ |B1-B2| เท่านั้น มีทั้งหมด <= ความอดทน

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

base = Color(\"#FF4CAF50\")
sample = Color.get(Point(620, 340))
is_same = Color.compare(base, sample, tolerance=8)  # เฉด UI ที่ใกล้เคียงกัน

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Color.distance_rgb

คำนวณระยะทางแบบยุคลิดในช่องว่าง RGB ระหว่างสองสี

รูปแบบคำสั่ง

Color.distance_rgb(a, b)

พารามิเตอร์

ชื่อคำอธิบาย
aColor | String | Number
First color.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
bColor | String | Number
Second color.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Number — ระยะทาง RGB-space ในช่วง 0 -> 441.67 (0 = แน่นอน) แนวทางปฏิบัติ: <=8 เกือบจะเหมือนกัน, 9-20 ปิด, 21-40 แตกต่างกันอย่างเห็นได้ชัด, >40 ห่างกัน

พฤติกรรม / ผลข้างเคียง

คำนวณระยะทางแบบยุคลิดในช่องว่าง RGB ระหว่างสองสี

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

actual = Color.get(Point(620, 340))
rgb_gap = Color.distance_rgb(\"#FF4CAF50\", actual)
if rgb_gap <= 15:
    print(\"close in RGB\")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Color.delta_e

คำนวณ CIE76 Delta E ระหว่างสองสีเพื่อความแตกต่างในการรับรู้

รูปแบบคำสั่ง

Color.delta_e(a, b)

พารามิเตอร์

ชื่อคำอธิบาย
aColor | String | Number
First color.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
bColor | String | Number
Second color.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Number — คะแนนความแตกต่างการรับรู้ Rule of thumb: <1 imperceptible, 1-2 barely noticeable, 2-5 noticeable, 5-10 clearly different, >10 different colors.

พฤติกรรม / ผลข้างเคียง

คำนวณ CIE76 Delta E ระหว่างสองสีเพื่อความแตกต่างในการรับรู้

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

actual = Color.get(Point(620, 340))
d = Color.delta_e(\"#FF4CAF50\", actual)
if d <= 3:
    print(\"looks similar to human eye\")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Color.compare

การเปรียบเทียบความทนทานต่อ RGB เวอร์ชันอินสแตนซ์ มีประโยชน์เมื่อคุณสุ่มตัวอย่างสีเดียวแล้วและเปรียบเทียบกับเฉดสีเป้าหมาย

รูปแบบคำสั่ง

color.compare(other, tolerance=0)

พารามิเตอร์

ชื่อคำอธิบาย
otherColor | String | Number
Color to compare.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
toleranceNumber
Allowed per-channel difference (0-255). Typical same-ish range: 4-8; use 10-16 for noisy/compressed captures.
ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ
ค่าเริ่มต้น: 0

ค่าที่ส่งกลับ

Boolean — ผลการเปรียบเทียบ 0 หมายถึงการจับคู่แบบตรงทั้งหมด ความอดทนที่มากขึ้นทำให้การจับคู่อนุญาตมากขึ้น

พฤติกรรม / ผลข้างเคียง

การเปรียบเทียบความทนทานต่อ RGB เวอร์ชันอินสแตนซ์ มีประโยชน์เมื่อคุณสุ่มตัวอย่างสีเดียวแล้วและเปรียบเทียบกับเฉดสีเป้าหมาย

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

picked = Color.get(Point(540, 920))
if picked.compare(\"#FFFFFFFF\", tolerance=5):
    click(Point(540, 920))

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Color.distance_rgb

คำนวณระยะทางแบบยุคลิดในพื้นที่ RGB จากสีนี้ไปยังสีอื่น

รูปแบบคำสั่ง

color.distance_rgb(other)

พารามิเตอร์

ชื่อคำอธิบาย
otherColor | String | Number
Color to compare.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Number — ระยะห่างของพื้นที่ RGB (0 -> 441.67) อ่านอย่างรวดเร็ว: <=8 เกือบจะเหมือนกัน, 9-20 ปิด, 21-40 แตกต่างกันอย่างเห็นได้ชัด, >40 ห่างกัน

พฤติกรรม / ผลข้างเคียง

คำนวณระยะทางแบบยุคลิดในพื้นที่ RGB จากสีนี้ไปยังสีอื่น

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

base = Color(\"#FF4CAF50\")
actual = Color.get(Point(620, 340))
rgb_gap = base.distance_rgb(actual)
if rgb_gap <= 20:
    print(\"close enough in RGB\")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

Color.delta_e

คำนวณ CIE76 Delta E จากสีนี้ไปเป็นสีอื่นเพื่อการเปรียบเทียบการรับรู้

รูปแบบคำสั่ง

color.delta_e(other)

พารามิเตอร์

ชื่อคำอธิบาย
otherColor | String | Number
Color to compare.
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Number — คะแนนความแตกต่างของสีที่รับรู้ Practical guide: <1 imperceptible, 1-2 barely visible, 2-5 noticeable, 5-10 clear difference, >10 very different.

พฤติกรรม / ผลข้างเคียง

คำนวณ CIE76 Delta E จากสีนี้ไปเป็นสีอื่นเพื่อการเปรียบเทียบการรับรู้

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

การทำงานกับค่าทำในโฟลว์ที่เรียก โดยไม่ตั้งใจรอการจับภาพ ท่าทาง หรือข้อมูลจากผู้ใช้ สร้างคอนเทนเนอร์และบิลเดอร์ที่เปลี่ยนค่าได้แยกในแต่ละโฟลว์ การแยกนี้ไม่รับประกันการซิงโครไนซ์ออบเจ็กต์ที่แชร์

ตัวอย่าง

base = Color(\"#FF4CAF50\")
actual = Color.get(Point(620, 340))
perceptual_gap = base.delta_e(actual)
if perceptual_gap <= 2:
    print(\"looks almost the same\")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง