إضافة تسميات توضيحية ديناميكية أو ترجمات أو رسائل ترويجية إلى ملفات GIF المتحركة هي حاجة شائعة للتطبيقات الحديثة على الويب والهواتف المحمولة. GroupDocs.Watermark Cloud SDK for Java يوفر مكتبة قوية تعتمد على REST تجعل هذه المهمة بسيطة. في هذا الدليل ستتعلم كيفية إضافة تراكب نصي إلى GIF باستخدام REST في Java، وسترى تنفيذًا كاملاً بلغة Java، وتستكشف أوامر cURL المكافئة، وتفهم خطوات الإعداد المطلوبة.
إضافة نص فوق GIF باستخدام REST في Java - مثال على الكود
يوضح هذا المثال كيفية تكوين علامة مائية نصية وتطبيقها على كل إطار من ملف GIF.
import com.groupdocs.watermark.cloud.api.WatermarkApi;
import com.groupdocs.watermark.cloud.client.ApiException;
import com.groupdocs.watermark.cloud.client.Configuration;
import com.groupdocs.watermark.cloud.model.AddWatermarkRequest;
import com.groupdocs.watermark.cloud.model.AddWatermarkResponse;
import com.groupdocs.watermark.cloud.model.FileInfo;
import com.groupdocs.watermark.cloud.model.OutputFileInfo;
import com.groupdocs.watermark.cloud.model.TextWatermarkOptions;
import com.groupdocs.watermark.cloud.model.HorizontalAlignment;
import com.groupdocs.watermark.cloud.model.VerticalAlignment;
public class AddTextOverlayToGif {
public static void main(String[] args) {
// Initialize API configuration (replace with your actual clientId and clientSecret)
Configuration config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(config);
// Prepare input file information
FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.gif"); // Path to the source GIF in the storage
inputFile.setStorageName("MyStorage"); // Optional: name of the storage
// Prepare output file information
OutputFileInfo outputFile = new OutputFileInfo();
outputFile.setFilePath("output.gif"); // Desired path for the watermarked GIF
outputFile.setStorageName("MyStorage"); // Optional: name of the storage
// Configure text watermark options
TextWatermarkOptions textOptions = new TextWatermarkOptions();
textOptions.setText("Sample Watermark");
textOptions.setFontFamily("Arial");
textOptions.setFontSize(24.0);
textOptions.setColor("#FF0000"); // Red color in HEX
textOptions.setOpacity(0.5); // 50% opacity
textOptions.setRotationAngle(0.0);
textOptions.setHorizontalAlignment(HorizontalAlignment.CENTER);
textOptions.setVerticalAlignment(VerticalAlignment.MIDDLE);
textOptions.setPageRange("1-"); // Apply to all frames/pages
// Build the request
AddWatermarkRequest request = new AddWatermarkRequest();
request.setFileInfo(inputFile);
request.setOutputFileInfo(outputFile);
request.setOptions(textOptions);
try {
// Execute the request
AddWatermarkResponse response = watermarkApi.addWatermark(request);
System.out.println("Watermark added successfully. Output file: " + response.getPath());
} catch (ApiException e) {
System.err.println("Error while adding watermark: " + e.getMessage());
e.printStackTrace();
}
}
}
ملاحظة: هذا المثال البرمجي يوضح الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتطابق بيئتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.
إضافة نص فوق GIF باستخدام REST API عبر cURL
فيما يلي أوامر cURL التي تقوم بنفس العملية من الطرفية. توضح سير عمل REST الكامل: المصادقة، التحميل، إضافة العلامة المائية، والتنزيل.
# 1. Obtain an access token
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
استبدل YOUR_ACCESS_TOKEN في المكالمات التالية بالرمز المميز الذي تم إرجاعه أعلاه.
# 2. Upload the source GIF to storage
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.gif" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @path/to/local/input.gif
# 3. Add text overlay to the GIF
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/add" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fileInfo": { "filePath": "input.gif", "storageName": "MyStorage" },
"outputFileInfo": { "filePath": "output.gif", "storageName": "MyStorage" },
"options": {
"text": "Sample Watermark",
"fontFamily": "Arial",
"fontSize": 24,
"color": "#FF0000",
"opacity": 0.5,
"horizontalAlignment": "Center",
"verticalAlignment": "Middle",
"pageRange": "1-"
}
}'
# 4. Download the watermarked GIF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output.gif" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o path/to/local/output.gif
لمزيد من التفاصيل حول أجسام الطلبات وتنسيقات الاستجابة، راجع وثائق API الرسمية.
تحليل إضافة نص كطبقة فوق GIF باستخدام REST في Java - كيف يعمل
- تهيئة عميل API -
new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")ينشئ كائن تكوين يحتوي على بيانات الاعتماد الخاصة بك. يستخدم كائنWatermarkApiهذا التكوين لتوقيع كل طلب.
Configuration config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(config);
تحديد ملفات المصدر والوجهة -
FileInfoوOutputFileInfoتخبر الخدمة بمكان قراءة ملف GIF الأصلي ومكان كتابة النتيجة. كلاهما يمكن أن يشير إلى اسم تخزين مخصص.FileInfo inputFile = new FileInfo(); inputFile.setFilePath("input.gif"); inputFile.setStorageName("MyStorage");تكوين العلامة المائية النصية -
TextWatermarkOptionsيحتوي على جميع الخصائص البصرية: النص، الخط، الحجم، اللون، الشفافية، الدوران، والمحاذاة. ضبطpageRangeإلى"1-"يضمن أن كل إطار من صورة GIF المتحركة يتلقى التراكب.
TextWatermarkOptions textOptions = new TextWatermarkOptions();
textOptions.setText("Sample Watermark");
textOptions.setFontFamily("Arial");
textOptions.setFontSize(24.0);
textOptions.setColor("#FF0000");
textOptions.setOpacity(0.5);
textOptions.setHorizontalAlignment(HorizontalAlignment.CENTER);
textOptions.setVerticalAlignment(VerticalAlignment.MIDDLE);
textOptions.setPageRange("1-");
- إنشاء وإرسال الطلب -
AddWatermarkRequestيجمع معلومات الملف والخيارات. استدعاءwatermarkApi.addWatermark(request)ينفّذ العملية على الخادم ويعيد مسار الملف المعالج.
AddWatermarkRequest request = new AddWatermarkRequest();
request.setFileInfo(inputFile);
request.setOutputFileInfo(outputFile);
request.setOptions(textOptions);
AddWatermarkResponse response = watermarkApi.addWatermark(request);
- معالجة الاستجابة - الاستجابة تحتوي على مسار ملف الإخراج. في تطبيق حقيقي، عادةً ما تقوم بتنزيل الملف أو تمرير المسار إلى خدمة أخرى.
للحصول على قائمة كاملة بالفئات والخصائص، راجع مرجع API.
تثبيت وتكوين GroupDocs.Watermark Cloud SDK لـ Java
أضف اعتماد Maven إلى ملف pom.xml الخاص بك (أو الإدخال المكافئ في Gradle). هذا يجلب الإصدار 23.8 من SDK.
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark-cloud</artifactId>
<version>23.8</version>
</dependency>
المتطلبات المسبقة
- Java 8 أو أعلى
- حساب GroupDocs Cloud نشط
- Client ID و Client Secret (متوفر في لوحة تحكم GroupDocs Cloud)
مثال على التكوين
Configuration config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
قم بتنزيل أحدث ملفات JAR من صفحة التحميل. للاستخدام في بيئة الإنتاج، قم بتطبيق ترخيص صالح تم الحصول عليه من صفحة الترخيص المؤقت.
الخلاصة
إضافة نص كغطاء فوق صورة GIF باستخدام REST في Java يصبح عملية قابلة للتكرار على الخادم بمساعدة GroupDocs.Watermark Cloud SDK for Java. يقوم SDK بتجريد التعقيدات المتعلقة بالتعامل مع الإطارات المتحركة، مما يتيح لك التركيز على محتوى الترجمات أو الرسائل الترويجية. بعد دمج عينة الكود أو سير عمل cURL، يمكنك ضبط أنماط الخطوط والألوان والشفافية لتتناسب مع علامتك التجارية. تذكر أن تأمن ترخيص الإنتاج؛ تفاصيل الأسعار متاحة على صفحة المنتج، ويمكن الحصول على ترخيص مؤقت للاختبار عبر temporary license page. برمجة سعيدة!
FAQs
كيف يمكنني إضافة نص كغطاء فوق صورة GIF باستخدام REST في Java عندما يتغير النص لكل مستخدم؟
قم بإنشاء كائنTextWatermarkOptionsفي وقت التشغيل باستخدام السلسلة الخاصة بالمستخدم، ثم استدعِ نفس استدعاءaddWatermark. تقوم الواجهة البرمجية بمعالجة كل طلب بشكل مستقل، لذا يتم دعم المحتوى الديناميكي بالكامل.هل يمكنني إضافة ترجمات إلى صورة GIF متحركة دون التأثير على سرعة تشغيلها؟
نعم. يتم تطبيق العلامة المائية على كل إطار مع الحفاظ على تأخير الإطار الأصلي. ما عليك سوى ضبطpageRangeإلى"1-"بحيث يحصل كل إطار على نفس التراكب.ما الصيغ المدعومة للون نص التراكب؟
يقبل SDK رموز ألوان HEX (مثال،#FF0000) وأسماء ألوان HTML القياسية. راجع مرجع API للقائمة الكاملة.هل أحتاج إلى ترخيص للتطوير والاختبار؟
ترخيص مؤقت يكفي للتقييم والاختبار. بالنسبة للنشر في بيئة الإنتاج، قم بشراء ترخيص كامل من صفحة المنتج وتطبيقه باستخدام واجهة برمجة تطبيقات الترخيص الخاصة بـ SDK.
