Tạo favicon API

Biến logo PNG, JPEG, SVG hoặc một chữ cái thành bộ favicon đầy đủ: favicon.ico, icon PNG và maskable, apple-touch-icon, site.webmanifest và mã HTML.

GETPOSThttps://apibox.io.vn/v1/favicon

Gửi logo dạng ảnh (PNG, JPEG hoặc SVG qua file multipart, body thô, file_base64 hoặc url), mã SVG trong svg, hoặc chỉ cần text (1–3 ký tự, ví dụ chữ cái đầu tên thương hiệu) cùng background, color và shape (square, rounded, circle) để vẽ icon chữ. Bạn nhận đủ các file website cần hiện nay: favicon.ico chứa ảnh 16, 32 và 48 px (định dạng BMP 32-bit bên trong, mọi trình duyệt và Windows đều đọc được), favicon-96x96.png, favicon.svg khi nguồn là ảnh vector (đã làm sạch và tối ưu), apple-touch-icon.png 180 px trên nền đặc, android-chrome-192x192.png và -512x512.png, maskable-icon-512x512.png với logo nằm trong vùng an toàn 80%, site.webmanifest, và các thẻ <link> / <meta> để dán vào <head>.

Ảnh không vuông được đặt giữa (fit=contain) hoặc cắt phần giữa (fit=cover); padding (phần trăm) thêm lề. Nguồn SVG được vẽ lại ở từng kích thước bằng bộ vẽ của chúng tôi nên icon nhỏ vẫn sắc nét. name, short_name, theme_color, background_color, display và đường dẫn path của các file được đưa vào manifest và mã HTML.

Kết quả JSON chứa từng file dạng data URI; format=zip trả về file ZIP gồm mọi file và favicon-snippet.html. Không lưu lại dữ liệu.

Tham số

TênVị tríKiểuBắt buộcMặc định
filebodyfilekhôngLogo (PNG, JPEG hoặc SVG): multipart, body thô hoặc file_base64.
svgbodystringkhôngMã SVG thay cho file.
urlquery|bodystringkhôngURL công khai của logo.
textquery|bodystringkhôngIcon chữ: 1–3 ký tự (dùng khi không gửi ảnh).
backgroundquery|bodystringkhông#2563ebMàu nền của icon chữ.
colorquery|bodystringkhông#ffffffMàu chữ.
shapequery|bodystringkhôngroundedHình icon chữ: square, rounded hoặc circle.
fitquery|bodystringkhôngcontaincontain (đặt ảnh không vuông vào giữa) hoặc cover (cắt phần giữa).
paddingquery|bodynumberkhông0Lề quanh logo, phần trăm kích thước icon (0–40).
namequery|bodystringkhôngTên ứng dụng trong manifest.
short_namequery|bodystringkhôngTên ngắn (hiện dưới icon trên màn hình chính).
theme_colorquery|bodystringkhông#ffffffMàu chủ đề (manifest + <meta name="theme-color">).
background_colorquery|bodystringkhông#ffffffMàu nền màn hình chờ và icon maskable.
apple_backgroundquery|bodystringkhôngMàu nền của apple-touch-icon (mặc định: background_color).
pathquery|bodystringkhông/Thư mục URL chứa các file, dùng trong HTML và manifest.
formatquery|bodystringkhôngjsonjson (data URI) hoặc zip.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/favicon" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"A","background":"#2563eb","name":"APIBox Demo","short_name":"Demo","theme_color":"#2563eb"}'

Kết quả trả về

{
  "source": "text",
  "html": "<link rel=\"icon\" type=\"image/png\" href=\"/favicon-96x96.png\" sizes=\"96x96\">\n<link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon.svg\">\n<link rel=\"shortcut icon\" href=\"/favicon.ico\">\n<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/apple-touch-icon.png\">\n<meta name=\"apple-mobile-web-app-title\" content=\"Demo\">\n<link rel=\"manifest\" href=\"/site.webmanifest\">\n<meta name=\"theme-color\" content=\"#2563eb\">",
  "manifest": {
    "name": "APIBox Demo",
    "short_name": "Demo",
    "icons": [
      {
        "src": "/android-chrome-192x192.png",
        "sizes": "192x192",
        "type": "image/png"
      },
      {
        "src": "/android-chrome-512x512.png",
        "sizes": "512x512",
        "type": "image/png"
      },
      {
        "src": "/maskable-icon-512x512.png",
        "sizes": "512x512",
        "type": "image/png",
        "purpose": "maskable"
      }
    ],
    "theme_color": "#2563eb",
    "background_color": "#ffffff",
    "display": "standalone"
  },
  "files": [
    {
      "name": "favicon.ico",
      "type": "image/x-icon",
      "width": 48,
      "height": 48,
      "bytes": 15086,
      "data_uri": "data:image/x-icon;base64,AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAAAAAgAAAAAQAgAAA…"
    },
    {
      "name": "favicon-96x96.png",
      "type": "image/png",
      "width": 96,
      "height": 96,
      "bytes": 1573,
      "data_uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4…"
    },
    {
      "name": "favicon.svg",
      "type": "image/svg+xml",
      "bytes": 289,
      "data_uri": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cmVjdCB3aW…"
    },
    {
      "name": "apple-touch-icon.png",
      "type": "image/png",
      "width": 180,
      "height": 180,
      "bytes": 3125,
      "data_uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAIAAACyr5Fl…"
    },
    {
      "name": "android-chrome-192x192.png",
      "type": "image/png",
      "width": 192,
      "height": 192,
      "bytes": 3311,
      "data_uri": "data:image/png;base64,…"
    },
    {
      "name": "android-chrome-512x512.png",
      "type": "image/png",
      "width": 512,
      "height": 512,
      "bytes": 10018,
      "data_uri": "data:image/png;base64,…"
    },
    {
      "name": "maskable-icon-512x512.png",
      "type": "image/png",
      "width": 512,
      "height": 512,
      "bytes": 8552,
      "data_uri": "data:image/png;base64,…"
    },
    {
      "name": "site.webmanifest",
      "type": "application/manifest+json",
      "bytes": 511,
      "data_uri": "data:application/manifest+json;base64,ewogICJuYW1lIjogIkFQSUJveCBEZW1vIiwKICAic2hvcnRfbmFtZSI6ICJEZW1vIiwK…"
    }
  ],
  "warnings": []
}

Ứng dụng

  • Tạo bộ favicon cho website, landing page mới chỉ với một lệnh gọi
  • Trình tạo website, CMS cho khách hàng tải logo lên
  • Icon chữ cái cho công cụ nội bộ, site staging
  • Icon PWA và manifest cho ứng dụng web có sẵn

Hỏi đáp

Thực sự cần những file nào?

favicon.ico ở thư mục gốc, file SVG hoặc PNG 96 px cho trình duyệt mới, apple-touch-icon.png cho iOS và manifest có icon 192 / 512 px cho Android, PWA. Đoạn HTML trả về đã tham chiếu đủ các file này.

Ảnh gốc nên có kích thước bao nhiêu?

Tốt nhất là SVG vuông. Với PNG / JPEG nên từ 512×512 px trở lên; ảnh nhỏ hơn vẫn dùng được nhưng icon lớn sẽ bị mờ, và API trả kèm cảnh báo.

Icon maskable là gì?

Android cắt icon ứng dụng thành hình tròn hoặc bo góc. Icon maskable giữ logo trong 80% vùng giữa trên nền màu đặc để không bị cắt mất phần quan trọng.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →