> [Site index](https://perfectvector.com/llms.txt) — available pages and descriptions.

# Chuyển cả thư mục ảnh sang SVG bằng Claude Code

> Lập kế hoạch chuyển cả thư mục sang SVG bằng Claude Code và PerfectVector MCP. Đặt đường dẫn riêng cho mỗi ảnh rồi kiểm tra SVG bị thiếu ngay trên máy.

Source: https://perfectvector.com/vi/blog/batch-vectorize-images-claude-code-mcp

Language: vi
Author: Jay
Published: 2026-11-13T08:00:00+09:00

Một thư mục biểu tượng dễ kiểm tra hơn khi mỗi ảnh có một đường dẫn SVG dự kiến. Claude Code có thể gửi ảnh cục bộ sang PerfectVector MCP, và PerfectVector xử lý từng ảnh một cho mỗi tài khoản. Dùng **danh sách đối chiếu** (manifest) để ghép từng ảnh nguồn với tệp đầu ra dự kiến và theo dõi những kết quả cần xử lý sau khi cuộc trò chuyện kết thúc. [Hướng dẫn chuyển đổi của PerfectVector](https://perfectvector.com/docs/mcp/use-in-conversation) · [Khắc phục sự cố PerfectVector](https://perfectvector.com/docs/mcp/troubleshooting#a-conversion-is-still-processing)

Bài này có câu lệnh theo tài liệu để giao việc cho Claude Code và tập lệnh Python để kiểm tra các tệp đã lưu trên máy. Tập lệnh kiểm tra tên tệp đầu ra và cấu trúc SVG. Nó không gửi yêu cầu chuyển đổi.

## Đặt đường dẫn đích không trùng nhau

Giữ cấu trúc thư mục trong một thư mục gốc riêng cho kết quả và thêm `.svg` vào cuối tên tệp đầy đủ. Cách này giữ riêng hai tệp `mark.png` trong hai thư mục con, đồng thời cho `logo.png` và `logo.jpg` hai tệp đầu ra khác nhau.

| Nguồn trong `./rasters` | Đầu ra trong `./vectors` |
| ----------------------- | ------------------------ |
| `east/mark.png`         | `east/mark.png.svg`      |
| `west/mark.png`         | `west/mark.png.svg`      |
| `labels/logo.png`       | `labels/logo.png.svg`    |
| `labels/logo.jpg`       | `labels/logo.jpg.svg`    |

**Danh sách đối chiếu của thư mục**

![Danh sách thư mục có ba dòng ghép ảnh nguồn với SVG. Hai đầu ra có dấu kiểm, một đầu ra còn trống.](https://perfectvector.com/blog/batch-vectorize-images-claude-code-mcp/workflow.webp)

*Ghép mỗi tệp nguồn với một đường dẫn SVG riêng. Nếu thiếu đầu ra, hãy kiểm tra lần chuyển đổi cũ trước khi phê duyệt làm lại.*

## Giới hạn phạm vi khi giao cả thư mục cho Claude Code

Cấu hình và xác thực máy chủ PerfectVector từ xa theo hướng dẫn thiết lập. Dùng tệp PNG, JPEG hoặc WebP một khung hình. Mỗi tệp tối đa 5 MB, mỗi cạnh từ 100 đến 4.096 pixel. [MCP trong Claude Code](https://code.claude.com/docs/en/mcp) · [Thiết lập Claude Code với PerfectVector](https://perfectvector.com/docs/mcp/getting-started#connect-ai-agents) · [Yêu cầu đối với ảnh của PerfectVector](https://perfectvector.com/docs/mcp/supported-inputs)

Bắt đầu bằng yêu cầu chỉ lập danh sách. Như vậy bạn có thể phát hiện đường dẫn trùng hoặc ảnh ngoài dự kiến trước khi chuyển đổi. Chỉ giữ những đường dẫn nguồn bạn đã cho phép xử lý trong đợt này.

```text
List the PNG, JPEG, and WebP files under ./rasters.
For each, propose one output under ./vectors with the same
relative directory and .svg appended to the full filename.
Flag paths that already exist. Show the list before converting.
```

Kiểm tra đường dẫn rồi phê duyệt một nhóm nhỏ. Nhờ Claude Code lưu từng SVG nhận được vào đường dẫn trong danh sách, giữ nguyên tệp gốc và báo các kết quả còn thiếu hoặc thất bại. Theo quy tắc hiện hành, PerfectVector tính một lượt cho mỗi SVG được bàn giao. Nếu cuộc trò chuyện dừng giữa chừng, hãy kiểm tra lần chuyển đổi cũ trước khi gửi yêu cầu mới cho ảnh đó. [Lượt sử dụng và tải xuống qua PerfectVector](https://perfectvector.com/docs/mcp/credits-delivery)

## Kiểm tra thư mục đầu ra

Lưu trình kiểm tra sau thành `check_svg_batch.py` rồi chạy `python3 check_svg_batch.py ./rasters ./vectors`. Tập lệnh kiểm tra quy tắc đặt tên ở trên cùng các phần tử hình học và hình ảnh thường gặp trong SVG. Nếu thấy “inspect visually”, bạn vẫn cần mở tệp để so với ảnh gốc. Phần mở rộng đúng và có đường dẫn vector chưa đủ để khẳng định kết quả bám sát ảnh gốc.

```python
import sys
import xml.etree.ElementTree as ET
from pathlib import Path

source = Path(sys.argv[1])
output = Path(sys.argv[2])
formats = {".png", ".jpg", ".jpeg", ".webp"}
namespace = "{http://www.w3.org/2000/svg}"

for image in sorted(source.rglob("*")):
    if not image.is_file() or image.suffix.lower() not in formats:
        continue
    relative = image.relative_to(source)
    svg = output / relative.with_name(relative.name + ".svg")
    try:
        document = ET.parse(svg).getroot()
    except FileNotFoundError:
        print("missing", relative)
        continue
    except ET.ParseError:
        print("invalid XML", relative)
        continue
    has_shape = any(
        document.find(f".//{namespace}{tag}") is not None
        for tag in ("path", "rect", "circle", "ellipse", "line", "polyline", "polygon")
    )
    has_image = document.find(f".//{namespace}image") is not None
    status = (
        "inspect visually"
        if document.tag == namespace + "svg" and has_shape and not has_image
        else "inspect structure"
    )
    print(status, relative)
```

Trong phép thử trên máy, tập lệnh giữ riêng các tệp nguồn trùng tên ở hai thư mục khác nhau. Nó phát hiện đầu ra bị thiếu, XML sai cấu trúc và SVG chứa phần tử ảnh. Bộ thử dùng một SVG của PerfectVector đã công bố cùng vài tệp thử nhỏ có chủ đích để xác minh việc kiểm tra tệp cục bộ.

Kết quả `missing` có nghĩa là không thấy SVG ở đường dẫn dự kiến. Điều này cũng bao gồm những tệp đã lên kế hoạch nhưng trợ lý chưa thử chuyển đổi. Kiểm tra trạng thái đã ghi và hỏi xem trợ lý có thể lấy lại kết quả hiện có không. Xác nhận những tệp cần gửi trước khi phê duyệt chuyển đổi lần nữa. Nếu XML sai cấu trúc hoặc có phần tử ảnh, hãy mở tệp đã lưu để xem nội dung tải về. Tải lại kết quả hiện có nếu phù hợp. Chỉ tạo lần chuyển đổi mới sau khi xác nhận không thể lấy lại đầu ra bị thiếu hoặc ảnh gốc thực sự cần được vector hóa lại. [Khắc phục sự cố PerfectVector MCP](https://perfectvector.com/docs/mcp/troubleshooting)

## Câu hỏi thường gặp

### Trình kết nối có chuyển cả thư mục trong một yêu cầu không?

PerfectVector xử lý từng ảnh một cho mỗi tài khoản. Claude Code có thể lần lượt xử lý một thư mục, với yêu cầu chuyển đổi riêng và đường dẫn SVG dự kiến cho từng tệp nguồn. [Hướng dẫn chuyển đổi của PerfectVector](https://perfectvector.com/docs/mcp/use-in-conversation) · [Khắc phục sự cố PerfectVector](https://perfectvector.com/docs/mcp/troubleshooting)

### Nếu tôi đã có một số tệp SVG thì sao?

Giữ chúng trong thư mục đầu ra và kiểm tra trước. Mở tệp để xem hình dạng, rồi đánh dấu hoàn tất những tệp đã xác minh. Với tệp còn thiếu, kiểm tra lần chuyển đổi cũ trước khi phê duyệt lần mới. [Lượt sử dụng và tải xuống qua PerfectVector](https://perfectvector.com/docs/mcp/credits-delivery)

## Nguồn tham khảo

1. [Anthropic — Kết nối Claude Code với công cụ qua MCP](https://code.claude.com/docs/en/mcp) — Cấu hình công cụ từ xa.
2. [PerfectVector — Kết nối trợ lý](https://perfectvector.com/docs/mcp/getting-started) — Thiết lập Claude Code.
3. [PerfectVector — Chuyển đổi ảnh](https://perfectvector.com/docs/mcp/use-in-conversation) — Cách gửi ảnh bằng đường dẫn cục bộ.
4. [PerfectVector — Yêu cầu đối với ảnh](https://perfectvector.com/docs/mcp/supported-inputs) — Các đầu vào raster được hỗ trợ.
5. [PerfectVector — Lượt sử dụng và tải xuống](https://perfectvector.com/docs/mcp/credits-delivery) — Tính lượt khi bàn giao và truy xuất lại kết quả.
6. [PerfectVector — Khắc phục sự cố](https://perfectvector.com/docs/mcp/troubleshooting) — Xử lý tuần tự và khôi phục yêu cầu bị gián đoạn.

***

[Mở PerfectVector MCP](https://perfectvector.com/vi/mcp) để xem cách kết nối Claude Code. Chọn hai ảnh, ghi hai đường dẫn SVG khác nhau rồi chạy trình kiểm tra cục bộ trên thư mục đầu ra. Xác nhận đường dẫn báo cáo khớp với kế hoạch trước khi thêm ảnh vào đợt xử lý.

## Explore

- [Read the HTML article](https://perfectvector.com/vi/blog/batch-vectorize-images-claude-code-mcp)
- [Claude có thể vector hóa ảnh không? Mã SVG và truy vết](https://perfectvector.com/vi/blog/can-claude-vectorize-an-image.md)
- [Vector hóa ảnh trong Make qua HTTP và Google Drive](https://perfectvector.com/vi/blog/make-com-vectorize-image-automation.md)
- [Product facts](https://perfectvector.com/product-facts.md)
- [FAQ](https://perfectvector.com/faq.md)
- [Pricing and credits](https://perfectvector.com/pricing.md)
