OneSVG Studio

Chuyển Hàng Loạt Ảnh Sang SVG (Batch)

Kéo thả nhiều ảnh vào cùng lúc, chọn engine (VTracer cho màu hoặc Potrace cho đen trắng), và tải về 1 file ZIP chứa toàn bộ SVG đã chuyển. Phù hợp khi bạn có bộ icon 20 file cần vector hoá nhanh.

Batch Convert
Tối đa 20 file × 25MB. Mọi file dùng chung 1 engine.

Tất cả file trong batch sẽ dùng cùng 1 engine này.

Về công cụ Batch Convert

Khi bạn có nhiều ảnh cần chuyển — ví dụ cả bộ icon 20 file, hoặc batch ảnh sản phẩm để làm thumbnail SVG — Batch Convert fan-out N job độc lập vào hàng đợi BullMQ. Mỗi file được xử lý song song (concurrency 2), progress tracking realtime từng file.

Sau khi tất cả hoàn tất, server đóng gói bằng archiver thành 1 ZIP để bạn tải. File gốc bị xoá ngay sau khi worker trace xong, ZIP tồn tại 1 giờ. Tiết kiệm hàng chục lần upload-download lẻ.

  • Tối đa 20 file / batch
  • 25MB / file, tổng batch không giới hạn cứng
  • Fan-out song song vào BullMQ
  • Progress realtime từng file
  • Download 1 ZIP duy nhất
  • Tên file output giữ tên gốc (.svg)

Cách chuyển hàng loạt ảnh sang SVG

  1. 1

    Kéo thả nhiều ảnh

    Có thể chọn từng ảnh hoặc thả nguyên folder. Duplicate sẽ tự được đánh số để tránh trùng tên trong ZIP.

  2. 2

    Chọn engine chung

    Color nếu toàn bộ là ảnh màu/illustration. Mono nếu toàn bộ là logo/icon đen trắng. Mix thì chia thành 2 batch.

  3. 3

    Bấm chuyển tất cả

    N file → N job fan-out. Bạn thấy progress từng file realtime.

  4. 4

    Chờ batch hoàn tất

    File to mất 3-30s, file logo nhỏ < 5s. Batch 20 file thường 2-5 phút.

  5. 5

    Tải ZIP về

    Nhấn tải về — ZIP chứa toàn bộ .svg với tên file gốc.

Khi nào dùng Batch Convert?

Vector hoá cả bộ icon PNG
Khách hàng giao 20 icon PNG, cần SVG trong 5 phút để deliver.
Chuyển thumbnail sản phẩm
200 ảnh thumbnail cho catalog, chia làm 10 batch × 20 file, xong trong 30 phút.
Chuẩn hoá asset sang SVG
Migrate toàn bộ raster asset của dự án sang SVG để responsive, giảm kích thước bundle.
Tạo SVG cho kho thư viện
Xây dựng icon library cho team, đóng gói tất cả SVG thành 1 ZIP deliverable.

Batch Convert vs chuyển từng file thủ công

So sánh thời gian thực tế khi convert icon set 20 file PNG 256×256.

Tiêu chíBatch Convert (OneSVG)Chuyển từng file
Thao tác upload1 lần (drag-drop tất cả)20 lần (từng file)
Thao tác download1 lần (1 file ZIP)20 lần
Thời gian tổng~2-5 phút~15-30 phút (tuỳ tốc độ người dùng)
Tên file trong outputGiữ nguyên tên gốcPhải tự rename
Lỗi 1 fileSkip, batch tiếp tụcPhải retry thủ công
Quản lý tiến trìnhProgress bar từng file realtimeKhông thấy tổng tiến trình
Lưu config1 lần apply cho cả batchPhải set lại mỗi file

Batch Convert hoạt động thế nào dưới capo?

Khi bạn upload 20 file, API /api/batch tạo 20 job độc lập trong BullMQ queue 'SVGProcessing', tất cả share chung một batchId (UUID v4). Mỗi job có jobId riêng (BullMQ auto-generated numeric ID) và được thêm vào Redis với data: {batchId, batchIndex, type, inputPath, outputPath, options}.

Worker pool chạy concurrency=2 (trên server i5 2 core) — tại một thời điểm 2 file được trace song song. Khi 1 worker hoàn thành job, nó pick job tiếp theo từ queue. Progress từng job push qua Redis pub/sub về client — front-end poll /api/batch/[batchId] mỗi 1.5s để update UI.

Khi tất cả job trong batch đạt state 'completed' hoặc 'failed', endpoint POST /api/batch/[batchId]/zip sẽ stream chunk từ archiver (Node stream-based ZIP) — không load toàn bộ file vào memory, tránh OOM với batch lớn. ZIP chứa tất cả file SVG thành công, tên file giữ nguyên từ upload. File cleanup cron 30 phút/lần xoá ZIP > 1 giờ.

Câu hỏi về Batch Convert

Tối đa bao nhiêu file?
20 file mỗi lần upload. Nếu cần nhiều hơn, chia thành nhiều batch — không giới hạn số lần chạy (chỉ rate limit 30/giờ/IP).
Có xử lý song song không?
Worker concurrency 2 (server i5 2 luồng). 20 file xử lý tuần tự 10 đợt × 2. Nhanh hơn làm tay rất nhiều.
File gặp lỗi có làm hỏng cả batch không?
Không. Job lỗi vẫn được đánh dấu failed, các job khác tiếp tục. ZIP chỉ chứa file thành công.
Có thể mix ảnh màu và đen trắng không?
Hiện 1 engine chung. Nếu mix, nên chia thành 2 batch để chất lượng tối ưu từng loại.