Skip to content

Cách Tôi Xây Dựng Hệ Thống VI — Sự Hòa Quyện Bất Đối Xứng Giữa Thiết Kế và Code

Bắt đầu từ hai file PNG, đây là toàn bộ quá trình tự động tạo ra một hệ thống nhận diện thương hiệu hoàn chỉnh bằng Python.


1. VI Là Gì? Tại Sao Cần Làm?

VI (Visual Identity — Hệ thống nhận diện thương hiệu) là "bộ quy chuẩn ngôn ngữ hình ảnh" mà thương hiệu dùng để giao tiếp ra bên ngoài. Nó trả lời một câu hỏi cốt lõi: Khi thương hiệu này xuất hiện ở bất kỳ đâu, nó phải trông như thế nào?

Một bộ VI hoàn chỉnh tối thiểu bao gồm:

Hạng mụcNội dung
Logo gốcPhiên bản nền trong suốt, các phiên bản nền màu
Biến thể logoNgang, dọc, vuông, tròn
Bảng màuThông số HEX / RGB / CMYK
Quy chuẩn fontFont chính/phụ, gợi ý cỡ chữ
Quy tắc sử dụngVùng bảo vệ, các hành vi bị cấm
Ví dụ ứng dụngDanh thiếp, tiêu đề thư, avatar mạng xã hội

Không có VI, mỗi designer, kỹ sư, nhân viên marketing "tự do sáng tạo", thương hiệu dần mất đi hình dạng nhất quán. Có VI, chỉ cần một thư mục là ai cũng có thể tạo ra những ứng dụng thương hiệu đồng nhất.


2. Xuất Phát Điểm: Hai File PNG

Nguyên liệu thô của dự án này chỉ là hai file PNG:

Logo gốc

Cả hai đều là logo thương hiệu Ascentek — nội dung giống nhau nhưng kích thước hơi khác nhau.

Phân tích cấu trúc Logo:

  • Bên trái: Biểu tượng máy bay giấy / mũi tên hình chữ A, tạo từ hai tam giác
    • Tam giác chính: màu Teal (#03dcd0)
    • Tam giác tối: gần đen (#181c20), tạo chiều sâu/khối lượng
  • Bên phải: Tên thương hiệu "Ascentek" bằng font sans-serif màu tối
  • Nền: Trong suốt (RGBA)

3. Trích Xuất Yếu Tố Thương Hiệu

3.1 Trích xuất bảng màu

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]

Kết quả:

Vai tròHEXRGB
Primary#03dcd03, 220, 208
Secondary#204b4c32, 75, 76
Dark / Text#181c2024, 28, 32

3.2 Phát hiện ranh giới Icon

Thách thức: Tự động tìm ra điểm kết thúc của biểu tượng và điểm bắt đầu của chữ.

Phương pháp đúng: Tìm khoảng cách rộng nhất

python
def find_icon_right(img):
    # Khoảng cách giữa icon và chữ luôn rộng hơn bất kỳ khe hở nào bên trong icon
    return max(gaps, key=width)[start_x]

4. Lựa Chọn Công Cụ

Công cụMục đíchLý do chọn
Python 3Ngôn ngữ scriptĐa nền tảng, hệ sinh thái phong phú
Pillow (PIL)Xử lý hình ảnhThuần Python, hỗ trợ RGBA đầy đủ
MontserratFont thương hiệuPhong cách khớp logo gốc, giấy phép SIL

5. Kỹ Thuật Cốt Lõi: Thích Ứng Màu Sắc

5.1 Thích ứng nền tối

python
def adapt_dark(img):
    for r, g, b, a in data:
        if a < 10:
            out.append((0, 0, 0, 0))        # Trong suốt: giữ nguyên
        elif r < 80 and g < 80 and b < 80:
            out.append((255, 255, 255, a))   # Tối: đổi thành trắng
        else:
            out.append((r, g, b, a))         # Teal: giữ nguyên

5.2 Bóng đơn sắc

python
def silhouette(img, color_rgb):
    alpha = img.split()[3]
    base = Image.new('RGBA', img.size, color_rgb + (255,))
    base.putalpha(alpha)
    return base

Ngang nền sángNgang nền tối


7. Thiết Kế Ứng Dụng

7.1 Danh thiếp

Mặt trướcMặt sau

Danh thiếp đã được tạo ra, nhưng kích thước và bố cục là chuyện chủ quan — mỗi người có quan điểm khác nhau nên không bàn thêm ở đây.

7.2 Tiêu đề thư (Letterhead)

Quy cách: A4 @ 300 dpi = 2480×3508 px. Logo trong header cần dùng phiên bản thích ứng nền tối (adapt_dark).


8. Những Cạm Bẫy Khi Làm Việc Với AI

Bẫy 1: Chữ ma (Ghost Text)

Giải pháp: Không thêm chữ lên logo đã có chữ sẵn.

Bẫy 2: Logo vô hình trên nền tối

Giải pháp: Hàm adapt_dark — chuyển pixel tối thành trắng, giữ nguyên teal.

Bẫy 3: Cắt icon không hoàn chỉnh

Giải pháp: Tìm khoảng cách rộng nhất thay vì khoảng trống đầu tiên.

Bẫy 4: Circle Primary vô hình

Giải pháp: Chuyển icon thành bóng trắng trước, rồi đặt lên nền teal.

Bẫy 5: Thẩm mỹ là điều khó phán xét tuyệt đối

Cái đẹp là chủ quan — hãy tự phán xét theo gu của mình. Cá nhân tôi thấy logo trên danh thiếp được tạo ra hơi lớn so với tổng thể.


9. Cấu Trúc Output Cuối Cùng

VI-ClaudeVersion/
├── logo/          # Tất cả biến thể Logo (PNG + SVG)
├── applications/  # Ví dụ ứng dụng
├── palette.txt
├── VI_GUIDELINES.md
└── generate_vi.py

10. Workflow Này Có Thể Tái Sử Dụng Ở Đâu?

Chỉ cần sửa hai dòng đầu trong generate_vi.py:

python
LOGO_SRC = 'logo_moi_cua_ban.png'
BRAND    = 'TenThuongHieu'

Chạy python generate_vi.py — toàn bộ 28 file được tạo ra trong một lần.


11. Tổng Kết Tư Duy Cốt Lõi

Bản chất của việc xây dựng VI không phải là "vẽ hình đẹp", mà là đặt ra các quy tắc và làm cho chúng có thể được thực thi.

  1. Đừng làm thủ công những gì có thể tự động hóa
  2. Đọc sự thật từ pixel
  3. Viết các quyết định thiết kế thành hàm
  4. Code là tài liệu
  5. Một lệnh là tái tạo được

Hệ thống VI tốt nhất là hệ thống mà bất kỳ ai cũng có thể sử dụng đúng cách mà không cần tác giả gốc có mặt.

Bí mật thú vị: Logo gốc cũng được AI tạo ra nhiều phiên bản, rồi sếp chọn một cái…

Cơ sở tri thức số Ascentek