البدء السريع
ثلاث خطوات وستقوم بتحويل الصور إلى SVG من الطرفية الخاصة بك أو نصوصك البرمجية أو تطبيقك.
1 · أنشئ حسابك
سجل في بوابة العملاء باستخدام بريدك الإلكتروني وكلمة مرور (10+ أحرف). لا يتطلب بطاقة ائتمان.
2 · أنشئ مفتاح API
في البوابة، أنشئ مفتاحًا. يتم عرضه مرة واحدة — احفظه في مكان آمن. تبدو المفاتيح مثل ptp_live_… ويمكن إبطالها في أي وقت.
3 · استدعِ /v1/convert
أرسل صورتك كـ multipart/form-data مع مفتاحك في ترويسة Authorization. يعود ملف SVG في جسم الاستجابة.
تحويلك الأول
curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
-H "Authorization: Bearer ptp_live_YOUR_KEY" \
-F "[email protected]" \
-F "colormode=binary" \
-o logo.svg
مرجع تفاعلي: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
المصادقة
تتم مصادقة كل طلب باستخدام رمز Bearer في ترويسة Authorization:
Authorization: Bearer ptp_live_0123abc…
- المفاتيح أسرار: يتم تخزينها مجزأة من جانب الخادم وتُعرض مرة واحدة فقط عند الإنشاء. هل فقدت مفتاحك؟ قم بإبطاله وأنشئ واحدًا جديدًا.
- حساب واحد، مفاتيح متعددة: أنشئ حتى 5 مفاتيح نشطة لفصل مشاريعك. يتم حساب حصتك المجانية الشهرية لكل حساب، وليس لكل مفتاح.
- إبطال فوري: يتوقف المفتاح المُبطل عن العمل فورًا، من البوابة أو من استجابة API لحساب محظور.
POST /v1/convert
رفع + تحويل في استدعاء واحد عديم الحالة (stateless). الاستدعاء الناجح يكلف رصيدًا واحدًا على الأكثر — الاستدعاءات الفاشلة أو غير الصالحة أو المحدودة المعدل لا تكلف شيئًا.
الطلب (multipart/form-data)
| الحقل | النوع | الافتراضي | الوصف |
|---|---|---|---|
file |
file | — | الصورة المراد تحويلها. PNG أو JPEG أو BMP أو WebP · بحد أقصى 20 ميغابايت · بحد أقصى 50 ميغابكسل · بحد أدنى 64×64 بكسل. |
colormode |
string | color |
<code>color</code> يستخدم محرك VTracer، و <code>binary</code> يستخدم Potrace (أبيض وأسود). |
mode |
string | spline |
Color (VTracer) فقط — يتم تجاهله في الوضع الثنائي. spline | polygon | none |
hierarchical |
string | stacked |
Color (VTracer) فقط — يتم تجاهله في الوضع الثنائي. stacked | cutout |
filter_speckle |
int | 4 |
Color (VTracer) فقط — يتم تجاهله في الوضع الثنائي. 0–16 — إزالة بقع الضوضاء الصغيرة. |
color_precision |
int | 6 |
Color (VTracer) فقط — يتم تجاهله في الوضع الثنائي. 1–8 — عدد البتات المعنوية لكل قناة لون. |
layer_difference |
int | 16 |
Color (VTracer) فقط — يتم تجاهله في الوضع الثنائي. 0–64 — المسافة بين طبقات الألوان. |
corner_threshold |
int | 60 |
0–180 — زاوية اكتشاف الزوايا (كلا المحركين). |
length_threshold |
float | 4.0 |
3.5–10 — الحد الأدنى لطول المقطع (كلا المحركين). |
splice_threshold |
int | 45 |
0–180 — زاوية تقسيم المسارات (كلا المحركين). |
path_precision |
int | 3 |
0–8 — المنازل العشرية في إحداثيات المسار. |
invert |
bool | false |
Binary (Potrace) فقط — يتم تجاهله في وضع الألوان. تتبع المناطق الفاتحة بدلاً من المناطق الداكنة. |
turdsize |
int | 2 |
Binary (Potrace) فقط — يتم تجاهله في وضع الألوان. 0–20 — إزالة البقع حتى هذا الحجم. |
alphamax |
float | 1.0 |
Binary (Potrace) فقط — يتم تجاهله في وضع الألوان. 0–1.334 — حد تمهيد الزوايا. |
opttolerance |
float | 0.2 |
Binary (Potrace) فقط — يتم تجاهله في وضع الألوان. 0–10 — حد تحسين المنحنيات. |
محركان، يتم اختيارهما بواسطة "colormode"
تشغل واجهة برمجة التطبيقات نفس المحركات تمامًا مثل المحول المجاني عبر الإنترنت وتطبيق سطح المكتب:
binary — Potrace
تتبع بالأبيض والأسود للرسومات الخطية والمسوحات الضوئية والرسومات التخطيطية والشعارات. يتم تتبع الجزء المظلم من الصورة (تدرج الرمادي < 50%) على خلفية بيضاء. قم بضبط المخرجات بدقة باستخدام turdsize (إزالة الضوضاء) و alphamax (تنعيم الزوايا) و opttolerance (تحسين المسار).
color — VTracer
تحويل متجه ملون متعدد الطبقات للرسوم التوضيحية والرسوم المتحركة والصور. تحكم في مستوى التفاصيل باستخدام filter_speckle و color_precision و layer_difference وملاءمة المنحنى باستخدام mode (spline, polygon, none).
تتم معالجة الصور مسبقًا تمامًا كما هو الحال في الموقع: يتم تغيير حجم الجانب الأطول إلى 1500 بكسل قبل التحويل، وتُرجع واجهة برمجة التطبيقات نوع الصورة المكتشف (line_art أو logo أو photo أو illustration) في ترويسة X-Detected-Type.
الاستجابة
عند النجاح: 200 OK مع image/svg+xml — الجسم هو ملف SVG نفسه. الترويسات المفيدة:
| الترويسة | الوصف |
|---|---|
X-Credits-Remaining | الأرصدة المدفوعة المتبقية في الحساب، بعد خصم هذا الاستدعاء. |
X-Free-Remaining | التحويلات المجانية المتبقية هذا الشهر. |
X-Detected-Type | نوع الصورة المكتشف (معلومة): line_art أو logo أو photo أو illustration. |
X-Processing-Time | وقت معالجة الخادم بالثواني. |
GET /v1/me
حالة الحساب للمفتاح المستخدم لاستدعائه. مجاني — لا يُحسب أبدًا ضمن حصتك، ولا يتم خصمه أبدًا.
استجابة مثال
GET /v1/me
Authorization: Bearer ptp_live_…
{
"key": { "name": "prod", "prefix": "ptp_live_0123abc", … },
"usage": {
"month": "2026-09", "free_used": 7, "free_limit": 10,
"free_remaining": 3, "resets_at": "2026-10-01T00:00:00+00:00"
},
"credits": { "balance": 120 }
}
الأخطاء
يرجع كل خطأ غلاف JSON متسق. الاستدعاءات الفاشلة لا تستهلك الأرصدة أبدًا.
HTTP/1.1 402 Payment Required
{
"error": {
"code": "quota_exceeded",
"message": "Monthly free quota used and no credits left.",
"usage": { "free_used": 10, "free_limit": 10, "credits": 0 }
}
}
| HTTP | الرمز | متى |
|---|---|---|
| 401 | invalid_api_key | مفتاح API مفقود أو مشوه أو غير معروف أو مُبطل. |
| 402 | quota_exceeded | تم استخدام الحصة المجانية الشهرية ولم يتبق أي أرصدة. |
| 403 | account_banned | الحساب محظور — يتم رفض جميع مفاتيحه. |
| 403 | ip_blocked | عنوان IP للمتصل مدرج في القائمة السوداء. |
| 413 | file_too_large | حجم الملف أكبر من 20 ميغابايت. |
| 422 | invalid_image / image_too_small / invalid_params | صورة غير صالحة، أو صورة صغيرة جدًا، أو قيمة معلمة غير صالحة. |
| 429 | rate_limited | تم تجاوز حد المعدل لكل مفتاح (انظر أدناه). يتضمن ترويسة Retry-After. |
| 500 | internal_error | فشل التحويل من جانب الخادم — لا يتم خصم أي رصيد. |
حدود المعدل
تُطبق الحدود لكل مفتاح API، وليس لكل IP، لذلك لا يتم معاقبة مكتب مشترك أو مشغل CI أبدًا بسبب حركة مرور شخص آخر.
| الحد | القيمة |
|---|---|
| الطلبات في الدقيقة، لكل مفتاح | 60 |
| الطلبات في اليوم، لكل مفتاح | 2 000 |
| التحويلات المتزامنة، لكل مفتاح | 2 (الاستدعاءات الإضافية تنتظر، ثم 429) |
| أقصى حجم / دقة للملف | 20 ميغابايت / 50 ميغابكسل |
التسعير
يحصل كل حساب جديد على 10 تحويلات مجانية كل شهر، ولا يتطلب بطاقة ائتمان. هل تحتاج إلى المزيد؟ اشترِ صورًا مسبقة الدفع — أي كمية (في دفعات من 50)، مع خصومات على الكمية. لا تنتهي صلاحيتها أبدًا وتتراكم مع حصتك المجانية الشهرية (يتم استهلاك التحويلات المجانية أولاً).
صور مسبقة الدفع
0.050€/ صورة
| الصور | 50–450 | 500–2 450 | 2 500–9 950 | 10 000–49 950 | 50 000+ |
|---|---|---|---|---|---|
| €/image | 0.050 | 0.040 | 0.030 | 0.020 | 0.010 |
- شراء صورة واحدة = تحويل واحد (الأرصدة لا تنتهي صلاحيتها أبدًا)
- لا تنتهي صلاحيتها أبدًا، تتراكم مع الباقة المجانية
- أي كمية: 0.040 يورو/صورة من 500، وتصل إلى 0.010 يورو/صورة
إضافة رصيد تلقائي: يتم تحديث رصيدك في غضون ثوانٍ من الدفع، عبر خطاف الدفع (webhook). تقوم المبالغ المستردة بخصم الأرصدة المشتراة، وبحد أقصى للرصيد الحالي. إتمام دفع آمن عبر Lemon Squeezy (يتم التعامل مع ضريبة القيمة المضافة تلقائيًا).
أمثلة برمجية
انسخ والصق وقم بالتعديل. تتحدث واجهة برمجة التطبيقات بصيغة multipart/form-data العادية، لذا سيعمل أي عميل HTTP.
cURL
curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
-H "Authorization: Bearer ptp_live_YOUR_KEY" \
-F "[email protected]" \
-F "colormode=color" \
-F "filter_speckle=4" \
-o photo.svg
Python
import requests
resp = requests.post(
"https://api.pixel-to-path.com/v1/convert",
headers={"Authorization": "Bearer ptp_live_YOUR_KEY"},
files={"file": open("photo.jpg", "rb")},
data={"colormode": "color", "filter_speckle": 4},
)
resp.raise_for_status()
print(resp.headers["X-Credits-Remaining"], "credits left")
with open("photo.svg", "wb") as f:
f.write(resp.content)
JavaScript
const form = new FormData();
form.append("file", new Blob([imageBytes]), "photo.jpg");
form.append("colormode", "color");
const resp = await fetch("https://api.pixel-to-path.com/v1/convert", {
method: "POST",
headers: { "Authorization": "Bearer ptp_live_YOUR_KEY" },
body: form,
});
if (!resp.ok) {
const { error } = await resp.json();
throw new Error(`${error.code}: ${error.message}`);
}
const svg = await resp.text();
console.log(resp.headers.get("X-Credits-Remaining"), "credits left");
الأسئلة الشائعة
ما الذي يُحسب كتحويل واحد؟
استدعاء POST /v1/convert ناجح واحد يُرجع SVG. الاستدعاءات الفاشلة (صورة غير صالحة، معلمات خاطئة، حد المعدل، خطأ في الخادم) واستدعاءات GET /v1/me لا يتم فرض رسوم عليها أبدًا.
كيف يتم حساب الحصة المجانية الشهرية؟
لكل حساب، في الشهر التقويمي بالتوقيت العالمي المنسق (UTC) — يتم إعادة تعيينه في اليوم الأول الساعة 00:00 بالتوقيت العالمي المنسق. إن إنشاء عدة مفاتيح API لا يضاعف الحصة المجانية: تشترك جميع مفاتيح الحساب في نفس الـ 10 تحويلات المجانية.
هل تنتهي صلاحية الأرصدة؟
لا. تبقى الأرصدة المشتراة في حسابك حتى تستخدمها. يتم استهلاكها فقط بعد استنفاد التحويلات الـ 10 المجانية الشهرية الخاصة بك.
كيف يمكنني الحصول على المزيد من التحويلات في الشهر؟
اشترِ صورًا مسبقة الدفع من بوابة العملاء — أي كمية، في دفعات من 50. ترى دائمًا بالضبط عدد الصور التي تحصل عليها: 50 صورة بـ 2.50 يورو، 500 صورة بـ 20 يورو، 2,500 بـ 75 يورو، 10,000 بـ 200 يورو، 50,000 بـ 500 يورو. يتم إضافة الأرصدة إلى حسابك تلقائيًا في غضون ثوانٍ من الدفع — لا يوجد مفتاح ترخيص ولا شيء لإدخاله.
ماذا يحدث إذا فقدت مفتاح API الخاص بي؟
يتم تخزين المفاتيح مجزأة، لذلك لا يمكن استردادها. قم بإبطال المفتاح المفقود في البوابة وأنشئ مفتاحًا جديدًا — يتم تفعيله على الفور.
ما هي صيغ الصور المدعومة؟
PNG و JPEG و BMP و WebP، بحجم يصل إلى 20 ميغابايت و 50 ميغابكسل، وبحد أدنى 64×64 بكسل. يتم تغيير حجم الصور الأكبر من 1500 بكسل على أطول جوانبها قبل التحويل، تمامًا كما هو الحال في الموقع المجاني.
اختر نسختك
نفس المحرك القوي - اختر التنسيق الذي يناسب سير عملك.
أداة عبر الإنترنت
مجاني
قم بتحويل الصور مباشرة في متصفحك. لا يوجد تثبيت، ولا حساب.
افتح الأداةتطبيق سطح المكتب
مجاني ومفتوح المصدر
المحول الكامل على جهازك، لأنظمة Windows و Linux.
تنزيل مجانيتطبيق سطح المكتب Pro
39€ لمرة واحدة
مجلد نشط (Hot folder)، وتحويل جماعي وواجهة سطر أوامر (CLI) لأعباء العمل الثقيلة.
احصل على ProAPI
باقة مجانية + باقات أرصدة
استدعاء REST واحد: أرسل صورة، واحصل على SVG نظيف. 10 مجانًا/شهريًا.
احصل على مفتاح APIقارن جميع الإصدارات والأسعار ←
هل لديك حساب بالفعل؟ قم بتسجيل الدخول إلى بوابة العملاء ←
هل أنت جاهز لتحويل المتجهات على نطاق واسع؟
أنشئ حسابك، واحصل على مفتاح وقم بإجراء استدعائك الأول في أقل من دقيقتين.
احصل على مفتاح API المجاني الخاص بك