วิธีที่ฉันสร้างระบบ VI — ความกลมกลืนที่ไม่สมมาตรระหว่างดีไซน์กับโค้ด
เริ่มต้นจากไฟล์ PNG สองไฟล์ บันทึกสมบูรณ์ของการสร้างระบบ Visual Identity ด้วย Python แบบอัตโนมัติ
1. VI คืออะไร? ทำไมต้องทำ?
VI (Visual Identity — ระบบอัตลักษณ์ภาพ) คือ "มาตรฐานภาษาภาพ" ที่แบรนด์ใช้สื่อสารกับโลกภายนอก มันตอบคำถามหลักหนึ่งข้อ: เมื่อแบรนด์นี้ปรากฏที่ไหนก็ตาม มันควรดูเป็นอย่างไร?
ชุด VI ที่สมบูรณ์ประกอบด้วยอย่างน้อย:
| หมวดหมู่ | เนื้อหา |
|---|---|
| Logo ต้นฉบับ | เวอร์ชันพื้นหลังโปร่งใส, เวอร์ชันพื้นหลังหลายสี |
| รูปแบบ Logo | แนวนอน, แนวตั้ง, สี่เหลี่ยม, วงกลม |
| พาเลตสี | สเปค HEX / RGB / CMYK |
| กฎการใช้ฟอนต์ | ฟอนต์หลัก/รอง, ข้อแนะนำขนาด |
| แนวทางการใช้งาน | พื้นที่ว่างที่ต้องรักษา, พฤติกรรมต้องห้าม |
| ตัวอย่างการใช้งาน | นามบัตร, หัวจดหมาย, อวาตาร์โซเชียล |
ไม่มี VI ทุกครั้งที่นักออกแบบ วิศวกร นักการตลาด "แสดงออกอย่างอิสระ" แบรนด์ก็จะค่อยๆ เสียรูป มี VI แค่โฟลเดอร์เดียวก็ทำให้ทุกคนสร้างผลงานแบรนด์ที่สอดคล้องกันได้
2. จุดเริ่มต้น: PNG สองไฟล์

วิเคราะห์โครงสร้าง Logo:
- ด้านซ้าย: สัญลักษณ์เครื่องบินกระดาษ / ลูกศรรูปตัว A ประกอบจากสองสามเหลี่ยม
- สามเหลี่ยมหลัก: สี Teal (
#03dcd0) - สามเหลี่ยมเข้ม: ใกล้ดำ (
#181c20) สร้างความลึก
- สามเหลี่ยมหลัก: สี Teal (
- ด้านขวา: ชื่อแบรนด์ "Ascentek" ฟอนต์ sans-serif สีเข้ม
- พื้นหลัง: โปร่งใส (RGBA)
3. การดึงองค์ประกอบแบรนด์
3.1 ดึงพาเลตสี
python
def get_dominant_colors(img, k=3):
pixels = [px[:3] for px in img.getdata() if px[3] > 0]
small = Image.new('RGB', (len(pixels), 1))
small.putdata(pixels)
pal = small.convert('P', palette=Image.ADAPTIVE, colors=k)
return pal.getpalette()[:k*3]ผลการดึง:
| บทบาท | HEX | RGB |
|---|---|---|
| Primary | #03dcd0 | 3, 220, 208 |
| Secondary | #204b4c | 32, 75, 76 |
| Dark / Text | #181c20 | 24, 28, 32 |
3.2 การตรวจจับขอบ Icon
วิธีที่ถูกต้อง: หาช่องว่างที่กว้างที่สุด
ช่องว่างระหว่าง icon กับข้อความย่อมกว้างกว่าช่องว่างภายใน icon เสมอ
python
def find_icon_right(img):
return max(gaps, key=width)[start_x]4. การเลือกเครื่องมือ
| เครื่องมือ | วัตถุประสงค์ | เหตุผล |
|---|---|---|
| Python 3 | ภาษา Script | ข้ามแพลตฟอร์ม, ecosystem ครบ |
| Pillow (PIL) | ประมวลผลภาพ | Pure Python, รองรับ RGBA เต็มรูปแบบ |
| Montserrat | ฟอนต์แบรนด์ | สไตล์ตรงกับ logo ต้นฉบับ, ใบอนุญาต SIL |
5. เทคนิคหลัก: การปรับสี
5.1 ปรับสำหรับพื้นหลังสีเข้ม
python
def adapt_dark(img):
for r, g, b, a in data:
if a < 10:
out.append((0, 0, 0, 0)) # โปร่งใส: ไม่เปลี่ยน
elif r < 80 and g < 80 and b < 80:
out.append((255, 255, 255, a)) # เข้ม: เปลี่ยนเป็นขาว
else:
out.append((r, g, b, a)) # Teal: คงไว้5.2 ซิลูเอตสีเดียว
python
def silhouette(img, color_rgb):
alpha = img.split()[3]
base = Image.new('RGBA', img.size, color_rgb + (255,))
base.putalpha(alpha)
return base6. รูปแบบ Logo


7. การออกแบบสื่อประยุกต์
7.1 นามบัตร


นามบัตรถูกสร้างขึ้นแล้ว แต่ขนาดและ layout เป็นเรื่องส่วนตัว ขึ้นอยู่กับแต่ละคน จึงไม่ขอกล่าวเพิ่มเติม
7.2 หัวจดหมาย (Letterhead)
สเปค: A4 @ 300 dpi = 2480×3508 px Logo ใน header ต้องใช้เวอร์ชันปรับสำหรับพื้นเข้ม (adapt_dark)
8. กับดักที่พบเจอเมื่อทำงานกับ AI
กับดัก 1: ข้อความซ้อน (Ghost Text)
วิธีแก้: อย่าเพิ่มข้อความซ้อนบน logo ที่มีข้อความอยู่แล้ว
กับดัก 2: Logo มองไม่เห็นบนพื้นเข้ม
วิธีแก้: ฟังก์ชัน adapt_dark — เปลี่ยน pixel เข้มเป็นขาว คง teal ไว้
กับดัก 3: ตัด icon ไม่สมบูรณ์
วิธีแก้: หาช่องว่างที่กว้างที่สุดแทนช่องว่างแรกที่พบ
กับดัก 4: Circle Primary มองไม่เห็น
วิธีแก้: แปลง icon เป็นซิลูเอตสีขาวก่อน แล้ววางบนพื้น teal
กับดัก 5: สุนทรียภาพเป็นเรื่องยากที่จะตัดสินอย่างเด็ดขาด
ความงามเป็นเรื่องส่วนตัว ให้ใช้วิจารณญาณของตัวเอง ส่วนตัวรู้สึกว่า logo บนนามบัตรที่สร้างขึ้นมีขนาดใหญ่เกินไปเมื่อเทียบกับภาพรวม
9. โครงสร้าง Output สุดท้าย
VI-ClaudeVersion/
├── logo/ # รูปแบบ Logo ทั้งหมด (PNG + SVG)
├── applications/ # ตัวอย่างการใช้งาน
├── palette.txt
└── generate_vi.py10. Workflow นี้ใช้ซ้ำได้ที่ไหน?
แก้สองบรรทัดแรกใน generate_vi.py:
python
LOGO_SRC = 'logo_ใหม่.png'
BRAND = 'ชื่อแบรนด์'รัน python generate_vi.py — สร้างไฟล์ทั้ง 28 ไฟล์ในครั้งเดียว
11. สรุปแนวคิดหลัก
แก่นแท้ของการสร้าง VI ไม่ใช่การ "วาดภาพสวย" แต่คือการกำหนดกฎและทำให้กฎนั้นปฏิบัติตามได้
- อย่าทำด้วยมือในสิ่งที่ทำอัตโนมัติได้
- อ่านความจริงจาก pixel
- เขียนการตัดสินใจด้านดีไซน์เป็นฟังก์ชัน
- โค้ดคือเอกสาร
- สร้างซ้ำได้ด้วยคำสั่งเดียว
ระบบ VI ที่ดีที่สุด คือระบบที่ใครก็สามารถใช้ได้อย่างถูกต้องโดยไม่ต้องมีผู้สร้างต้นฉบับอยู่ด้วย
Easter egg: ที่จริง logo ต้นฉบับก็เป็น AI สร้างออกมาหลายแบบแล้วเจ้าของแบรนด์เลือกมาชิ้นหนึ่ง…