chrome.fontSettings

คำอธิบาย

ใช้ chrome.fontSettings API เพื่อจัดการการตั้งค่าแบบอักษรของ Chrome

สิทธิ์

fontSettings

หากต้องการใช้ API การตั้งค่าแบบอักษร คุณต้องประกาศสิทธิ์ "fontSettings" ในไฟล์ Manifest ส่วนขยาย เช่น

{
  "name": "My Font Settings Extension",
  "description": "Customize your fonts",
  "version": "0.2",
  "permissions": [
    "fontSettings"
  ],
  ...
}

แนวคิดและการใช้งาน

Chrome อนุญาตให้การตั้งค่าแบบอักษรบางรายการขึ้นอยู่กับชุดแบบอักษรและสคริปต์ภาษาทั่วไปบางประเภท ตัวอย่างเช่น แบบอักษรที่ใช้สำหรับ sans-serif จีนตัวย่ออาจแตกต่างจากแบบอักษรที่ใช้สำหรับ serif ภาษาญี่ปุ่น

ชุดแบบอักษรทั่วไปที่ Chrome รองรับจะอิงตามชุดแบบอักษรทั่วไปของ CSS และจะแสดงอยู่ในส่วน GenericReference เมื่อหน้าเว็บระบุชุดแบบอักษรทั่วไป Chrome จะเลือกแบบอักษรตามการตั้งค่าที่สอดคล้องกัน หากไม่ได้ระบุชุดแบบอักษรทั่วไป Chrome จะใช้การตั้งค่าสำหรับชุดแบบอักษรทั่วไป "มาตรฐาน"

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

สคริปต์ภาษาที่รองรับจะระบุโดยรหัสสคริปต์ ISO 15924 และแสดงอยู่ใน ScriptCode โดยทางเทคนิคแล้ว การตั้งค่า Chrome ไม่ได้ขึ้นอยู่กับสคริปต์เพียงอย่างเดียวแต่ก็ขึ้นอยู่กับภาษาด้วย เช่น Chrome เลือกแบบอักษรเป็นอักษรซิริลลิก (รหัสสคริปต์ ISO 15924 "Cyrl") เมื่อหน้าเว็บระบุภาษารัสเซีย และใช้แบบอักษรนี้ ไม่ใช่สําหรับสคริปต์ซีริลลิกเท่านั้น แต่ใช้กับทุกแบบอักษรที่ครอบคลุม เช่น ละติน

ตัวอย่าง

รหัสต่อไปนี้เป็นแบบอักษรมาตรฐานสำหรับภาษาอาหรับ

chrome.fontSettings.getFont(
  { genericFamily: 'standard', script: 'Arab' },
  function(details) { console.log(details.fontId); }
);

ตัวอย่างข้อมูลถัดไปกำหนดแบบอักษร Sans-serif สำหรับภาษาญี่ปุ่น

chrome.fontSettings.setFont(
  { genericFamily: 'sansserif', script: 'Jpan', fontId: 'MS PGothic' }
);

หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง fontSettings API จากที่เก็บ chrome-extension-samples

ประเภท

FontName

แสดงชื่อแบบอักษร

พร็อพเพอร์ตี้

  • displayName

    string

    ชื่อที่แสดงของแบบอักษร

  • fontId

    string

    รหัสแบบอักษร

GenericFamily

ชุดแบบอักษรทั่วไปของ CSS

ค่าแจกแจง

"sansserif"

"serif"

LevelOfControl

หนึ่งใน not\_controllable: ควบคุมโดยส่วนขยายใดๆ ไม่ได้ controlled\_by\_other\_extensions: ควบคุมโดยส่วนขยายที่มีลำดับความสำคัญสูงกว่า controllable\_by\_this\_extension: ควบคุมได้ด้วยส่วนขยายนี้ controlled\_by\_this\_extension: ควบคุมโดยส่วนขยายนี้

ค่าแจกแจง

"not_controllable"

"controlled_by_other_extensions"

"controllable_by_this_extension"

"controlled_by_this_extension"

ScriptCode

รหัสสคริปต์ ISO 15924 สคริปต์เริ่มต้นหรือสคริปต์ส่วนกลางจะแสดงด้วยโค้ดสคริปต์ "Zyyy"

ค่าแจกแจง

"Armi"

"Avst"

"Bugi"

"Buhd"

"Cari"

"Cirt"

"Copt"

"Cprt"

"Dsrt"

"Geor"

"Hluw"

"Inds"

"Khmr"

"Kpel"

"Latf"

"Lepc"

"Linb"

"Mero"

"Mlym"

"Mroo"

"Mtei"

"Mymr"

"Nbat"

"Nkgb"

"Nkoo"

"Ogam"

"Olck"

"Orkh"

"Perm"

"Phlp"

"Phlv"

"Phnx"

"Plrd"

"Prti"

"Rjng"

"Samr"

"Sarb"

"Sgnw"

"Shrd"

"Taml"

"Tavt"

"Tfng"

"Tglg"

"Tibt"

"Xpeo"

"Xsux"

"Zmth"

"Zsym"

"Zyyy"

วิธีการ

clearDefaultFixedFontSize()

สัญญา
chrome.fontSettings.clearDefaultFixedFontSize(
  details?: object,
  callback?: function,
)

ล้างขนาดแบบอักษรเริ่มต้นคงที่ซึ่งกำหนดโดยส่วนขยายนี้ (หากมี)

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์ ไม่บังคับ

    ยังไม่ได้ใช้พารามิเตอร์นี้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

clearDefaultFontSize()

สัญญา
chrome.fontSettings.clearDefaultFontSize(
  details?: object,
  callback?: function,
)

ล้างขนาดแบบอักษรเริ่มต้นที่กำหนดโดยส่วนขยายนี้ (หากมี)

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์ ไม่บังคับ

    ยังไม่ได้ใช้พารามิเตอร์นี้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

clearFont()

สัญญา
chrome.fontSettings.clearFont(
  details: object,
  callback?: function,
)

ล้างแบบอักษรที่ส่วนขยายนี้กำหนดไว้ หากมี

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    • genericFamily

      ชุดแบบอักษรทั่วไปที่ควรล้างแบบอักษร

    • แบบตัวเขียน

      ScriptCode ไม่บังคับ

      สคริปต์ที่ควรล้างแบบอักษร หากไม่ระบุ ระบบจะล้างการตั้งค่าแบบอักษรของสคริปต์ส่วนกลาง

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

clearMinimumFontSize()

สัญญา
chrome.fontSettings.clearMinimumFontSize(
  details?: object,
  callback?: function,
)

ล้างขนาดแบบอักษรขั้นต่ำที่ส่วนขยายนี้กำหนดไว้ หากมี

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์ ไม่บังคับ

    ยังไม่ได้ใช้พารามิเตอร์นี้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

getDefaultFixedFontSize()

สัญญา
chrome.fontSettings.getDefaultFixedFontSize(
  details?: object,
  callback?: function,
)

รับขนาดเริ่มต้นสำหรับแบบอักษรความกว้างคงที่

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์ ไม่บังคับ

    ยังไม่ได้ใช้พารามิเตอร์นี้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • pixelSize

        ตัวเลข

        ขนาดแบบอักษรในหน่วยพิกเซล

การคืนสินค้า

  • Promise<object>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

getDefaultFontSize()

สัญญา
chrome.fontSettings.getDefaultFontSize(
  details?: object,
  callback?: function,
)

รับขนาดแบบอักษรเริ่มต้น

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์ ไม่บังคับ

    ยังไม่ได้ใช้พารามิเตอร์นี้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • pixelSize

        ตัวเลข

        ขนาดแบบอักษรในหน่วยพิกเซล

การคืนสินค้า

  • Promise<object>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

getFont()

สัญญา
chrome.fontSettings.getFont(
  details: object,
  callback?: function,
)

รับแบบอักษรสำหรับสคริปต์ที่กำหนดและชุดแบบอักษรทั่วไป

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    • genericFamily

      ชุดแบบอักษรทั่วไปที่ควรเรียกแบบอักษร

    • แบบตัวเขียน

      ScriptCode ไม่บังคับ

      สคริปต์ที่ควรเรียกแบบอักษร หากไม่ระบุ ระบบจะเรียกการตั้งค่าแบบอักษรสำหรับสคริปต์ส่วนกลาง (โค้ดสคริปต์ "Zyyy")

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • fontId

        string

        รหัสแบบอักษร ค่านี้อาจเป็นรหัสของแบบอักษรที่ระบบแก้ไขค่ากําหนดดังกล่าว แทนที่จะเป็นค่ากําหนดรหัสแบบอักษรตามตัวอักษร ดังนั้น fontId จึงอาจแตกต่างจากแบบอักษรที่ส่งไปยัง setFont ในกรณีที่แบบอักษรนั้นใช้ไม่ได้ในระบบ สตริงว่างหมายถึงการสำรองการตั้งค่าแบบอักษรสคริปต์ส่วนกลาง

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

การคืนสินค้า

  • Promise<object>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

getFontList()

สัญญา
chrome.fontSettings.getFontList(
  callback?: function,
)

รับรายการแบบอักษรในระบบ

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (results: FontName[])=>void

    • ผลการแข่งขัน

การคืนสินค้า

  • Promise<FontName[]>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

getMinimumFontSize()

สัญญา
chrome.fontSettings.getMinimumFontSize(
  details?: object,
  callback?: function,
)

รับขนาดแบบอักษรขั้นต่ำ

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์ ไม่บังคับ

    ยังไม่ได้ใช้พารามิเตอร์นี้

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • pixelSize

        ตัวเลข

        ขนาดแบบอักษรในหน่วยพิกเซล

การคืนสินค้า

  • Promise<object>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

setDefaultFixedFontSize()

สัญญา
chrome.fontSettings.setDefaultFixedFontSize(
  details: object,
  callback?: function,
)

ตั้งค่าขนาดเริ่มต้นสำหรับแบบอักษรความกว้างคงที่

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    • pixelSize

      ตัวเลข

      ขนาดแบบอักษรในหน่วยพิกเซล

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

setDefaultFontSize()

สัญญา
chrome.fontSettings.setDefaultFontSize(
  details: object,
  callback?: function,
)

ตั้งค่าขนาดแบบอักษรเริ่มต้น

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    • pixelSize

      ตัวเลข

      ขนาดแบบอักษรในหน่วยพิกเซล

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

setFont()

สัญญา
chrome.fontSettings.setFont(
  details: object,
  callback?: function,
)

ตั้งค่าแบบอักษรสำหรับสคริปต์ที่กำหนดและชุดแบบอักษรทั่วไป

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    • fontId

      string

      รหัสแบบอักษร สตริงว่างหมายถึงกลับไปใช้การตั้งค่าแบบอักษรสคริปต์ส่วนกลาง

    • genericFamily

      ชุดแบบอักษรทั่วไปที่ควรตั้งค่าแบบอักษร

    • แบบตัวเขียน

      ScriptCode ไม่บังคับ

      รหัสสคริปต์ที่ควรตั้งค่าแบบอักษร หากไม่ระบุ ระบบจะตั้งค่าแบบอักษรสำหรับสคริปต์ส่วนกลาง (รหัสสคริปต์ "Zyyy")

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

setMinimumFontSize()

สัญญา
chrome.fontSettings.setMinimumFontSize(
  details: object,
  callback?: function,
)

ตั้งค่าขนาดแบบอักษรขั้นต่ำ

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    • pixelSize

      ตัวเลข

      ขนาดแบบอักษรในหน่วยพิกเซล

  • Callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    ()=>void

การคืนสินค้า

  • Promise<void>

    Chrome 96 ขึ้นไป

    Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

กิจกรรม

onDefaultFixedFontSizeChanged

chrome.fontSettings.onDefaultFixedFontSizeChanged.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเปลี่ยนแปลงการตั้งค่าขนาดแบบอักษรคงที่เริ่มต้น

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • pixelSize

        ตัวเลข

        ขนาดแบบอักษรในหน่วยพิกเซล

onDefaultFontSizeChanged

chrome.fontSettings.onDefaultFontSizeChanged.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเปลี่ยนแปลงการตั้งค่าขนาดแบบอักษรเริ่มต้น

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • pixelSize

        ตัวเลข

        ขนาดแบบอักษรในหน่วยพิกเซล

onFontChanged

chrome.fontSettings.onFontChanged.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเปลี่ยนแปลงการตั้งค่าแบบอักษร

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • fontId

        string

        รหัสแบบอักษร ดูคำอธิบายในภาษาgetFont

      • genericFamily

        ชุดแบบอักษรทั่วไปที่มีการเปลี่ยนแปลงการตั้งค่าแบบอักษร

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • แบบตัวเขียน

        ScriptCode ไม่บังคับ

        รหัสสคริปต์ที่มีการเปลี่ยนแปลงการตั้งค่าแบบอักษร

onMinimumFontSizeChanged

chrome.fontSettings.onMinimumFontSizeChanged.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเปลี่ยนแปลงการตั้งค่าขนาดแบบอักษรขั้นต่ำ

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • levelOfControl

        ระดับการควบคุมส่วนขยายนี้เหนือการตั้งค่า

      • pixelSize

        ตัวเลข

        ขนาดแบบอักษรในหน่วยพิกเซล