حساب موضع العلامة المائية ومقياسها وحدودها
شعار بمقاس 300×120 بنصف حجمه في الزاوية السفلية اليمنى لصورة بمقاس 1200×800 يصبح 150×60 ويبدأ عند 1050 من اليسار و740 من الأعلى. تحصل على الإطار كاملًا قبل تغيير أي بكسل. الأداة تحسب فقط. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- عرض القاعدة
- 1,200
- ارتفاع القاعدة
- 800
- عرض العلامة المائية
- 300
- ارتفاع العلامة المائية
- 120
- الموضع
- Bottom right
- المقياس
- 0.5
- X
- 1,050
- Y
- 740
- العرض
- 150
- الارتفاع
- 60
تحدد هذه الحاسبة موضع العلامة المائية بدقة قبل تغيير أي بكسل. أدخلوا أبعاد الصورة الأساسية وأبعاد صورة العلامة، ومعامل المقياس، وواحداً من تسعة مواضع للارتكاز. تعرض النتيجة إحداثيات اليسار والأعلى واليمين والأسفل، إلى جانب العرض والارتفاع بعد الوضع. ويتيح خيار التصغير التناسبي احتواء العلامة الكبيرة داخل الصورة الأساسية مع الحفاظ على نسبة أبعادها.
صفوا الصورتين ضمن نظام إحداثيات واحد
ابدؤوا بعرض الصورة الأساسية وارتفاعها، ثم أدخلوا العرض والارتفاع الطبيعيين لصورة العلامة المائية. البكسل هو الوحدة المعتادة، لكن يمكن استعمال أي وحدة موجبة ما دامت موحدة في جميع القيم. يطبق معامل المقياس بالتساوي على البعدين، ولذلك يحافظ على نسبة الأبعاد.
تجعل القيمة 0.5 كل بعد نصف حجمه، بينما تضاعف القيمة 2 البعدين. ترفض الحاسبة القيم المفقودة أو الصفرية أو السالبة أو غير الرقمية أو اللانهائية، لأنها لا تعرف مستطيلاً صالحاً. ولا تقرأ ملفات الصور أو تعدلها، ولا تقدر الرسم المرئي داخل الحواف الشفافة، ولا تتعامل مع التدوير.
استخدموا أبعاد اللوحة الكاملة لكل صورة. يمثل العرض والارتفاع الناتجان كامل لوحة العلامة بعد وضعها، بما في ذلك أي بكسلات شفافة تنتمي إلى الملف الأصلي.
اختاروا نقطة الارتكاز واقرؤوا الإطار المحيط
يحدد الموضع واحدة من تسع نقاط ارتكاز: الزوايا الأربع، أو منتصف كل حافة، أو المركز الدقيق. يقع الأصل في الزاوية العليا اليسرى وفق نظام إحداثيات الصور النقطية المعتاد؛ تزداد x نحو اليمين وتزداد y نحو الأسفل. تبدأ العلامة المثبتة أعلى اليسار من الصفر على المحورين، أما المثبتة أسفل اليمين فتنتهي عند عرض الصورة الأساسية وارتفاعها.
تقسم الخيارات الوسطية المساحة المتبقية بالتساوي وقد تنتج قيماً عشرية. توفر الاستجابة x وy للزاوية العليا اليسرى، وwidth وheight للحجم الموضوع، وright وbottom للحافتين المقابلتين. تشكل هذه القيم معاً الإطار الذي تحتاج إليه مكتبات صور كثيرة.
لا تضاف أي هوامش تلقائياً. إذا كان التصميم يتطلب مسافة عن الحافة، فعدلوا الإحداثيات بعد الحساب أو وسعوا المستطيل التصوري مسبقاً.
عالجوا العلامات المائية الكبيرة بصورة صريحة
يقيّم المقياس قبل حساب الموضع. إذا تجاوزت العلامة بعد تغيير حجمها عرض الصورة الأساسية أو ارتفاعها، يعاد خطأ إدخال افتراضياً بدلاً من إنتاج قص غير متوقع. تختار الحاسبة النسبة الأصغر المتاحة بين نسبتي العرض والارتفاع، وتطبق هذا التخفيض الإضافي بالتساوي، وتضمن احتواء البعدين.
لا يكبر هذا الخيار العلامة مطلقاً، بل يعمل فقط عندما يكون الحجم المطلوب أكبر من اللازم. وبذلك يمكن لقاعدة واحدة خدمة الصور الأفقية والرأسية والمصغرات من دون تشويه.
حالات الاستخدام
إعداد أمر التراكب
احسبوا الإحداثيات والأبعاد الدقيقة قبل تمرير الشعار والصورة الأساسية إلى مكتبة معالجة الصور.
التحقق من قواعد التجاوب
اختبروا المقياس ونقطة الارتكاز نفسيهما مع صور سطح المكتب والهاتف والصور الرأسية والمصغرات من دون تعديل الملفات.
منع القص غير المقصود
ارفضوا العلامة الكبيرة أو صغروها تناسبياً قبل أن يطبق مسار الإنتاج عملية التراكب.
الأسئلة الشائعة
هل تعدل هذه الإمكانية الصورة؟
لا. إنها تحسب هندسة الموضع فقط وتعيد إطاراً ليستعمله محرك عرض أو مكتبة صور أخرى.
أين يقع أصل الإحداثيات؟
يقع في الزاوية العليا اليسرى للصورة الأساسية. تزداد x يميناً وتزداد y إلى الأسفل.
هل يحافظ تغيير المقياس على نسبة الأبعاد؟
نعم. يطبق معامل موحد على البعدين، بما في ذلك أي احتواء تناسبي اختياري.
هل يتضمن الموضع هوامش؟
لا. تلامس نقاط الارتكاز الحافة المعنية أو توسّط المستطيل بدقة. أضيفوا المسافة المطلوبة بعد الحساب.
ماذا يحدث إذا كانت العلامة المائية أكبر من الصورة؟
يُرفض الحساب افتراضيًا بدل إعادة نتيجة مقصوصة. وإذا فعّلت التصغير التناسبي تصغر العلامة حتى تتسع داخل الصورة مع الحفاظ على تناسبها، وتخبرك النتيجة بالمعامل النهائي وهل جرى التصغير.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/watermark-image \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base_width":1200,"base_height":800,"watermark_width":300,"watermark_height":120}'const res = await fetch("https://api.kit.forhosting.com/image/watermark-image", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base_width": 1200,
"base_height": 800,
"watermark_width": 300,
"watermark_height": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/watermark-image",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base_width": 1200,
"base_height": 800,
"watermark_width": 300,
"watermark_height": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/watermark-image", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base_width":1200,"base_height":800,"watermark_width":300,"watermark_height":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base_width":1200,"base_height":800,"watermark_width":300,"watermark_height":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/watermark-image", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"base_width": 1200,
"base_height": 800,
"watermark_width": 300,
"watermark_height": 120
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.watermark_image",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 15 |
max_megapixels | 12 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
عالجوا العلامات المائية الكبيرة بصورة صريحة
فعلوا scale_down عندما يكون الاحتواء التلقائي مطلوباً. تتضمن الاستجابة المقياس النهائي والعلامة scaled_down، لكي يسجل سير العمل ما إذا تغير الحجم المطلوب. الحساب حتمي، ولا يرفع ملفاً، ولا يتصل بالشبكة، وتبلغ كلفة كل طلب API مؤتمت $0.002.
أسئلة تقنية
ماذا يحدث إذا كانت العلامة أكبر من اللازم؟
يفشل الطلب افتراضياً. فعلوا scale_down لتصغيرها تناسبياً حتى تتسع داخل الصورة.
ما كلفة طلب API؟
السعر هو $0.002 لكل طلب. ويمكن إجراء الحساب الحتمي نفسه مجاناً في المتصفح.