curl \
-H "Authorization: Bearer API_KEY" \
-H 'Content-Type: application/json' \
-d '{"mediaUrl": "https://img.ayrshare.com/012/gb.jpg", "platform": "instagram"' \
-X POST https://api.ayrshare.com/api/media/resize
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/media/resize", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`
},
body: JSON.stringify({
mediaUrl: "https://img.ayrshare.com/012/gb.jpg", // required
platform: "instagram"
})
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
payload = {'mediaUrl': 'https://img.ayrshare.com/012/gb.jpg',
'platforms': 'instagram'}
headers = {'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY'}
r = requests.post('https://api.ayrshare.com/api/media/resize',
json=payload,
headers=headers)
print(r.json())
<?php
$curl = curl_init();
$data = array (
"mediaUrl" => "https://img.ayrshare.com/012/gb.jpg",
"platforms" => "instagram"
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.ayrshare.com/api/media/resize',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer API_KEY',
'Accept-Encoding: gzip'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
public class AyrshareApiClient
{
private readonly HttpClient _httpClient;
private readonly string _apiKey;
private const string BaseUrl = "https://api.ayrshare.com/api";
public AyrshareApiClient(string apiKey)
{
_apiKey = apiKey ?? throw new ArgumentNullException(nameof(apiKey));
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {_apiKey}");
}
public async Task<string> ResizeMediaAsync(string mediaUrl, string platform)
{
try
{
var requestData = new
{
mediaUrl = mediaUrl,
platform = platform
};
var content = new StringContent(
JsonSerializer.Serialize(requestData),
Encoding.UTF8,
"application/json"
);
var response = await _httpClient.PostAsync($"{BaseUrl}/media/resize", content);
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();
return jsonResponse;
}
catch (HttpRequestException ex)
{
throw new Exception($"Failed to resize media: {ex.Message}", ex);
}
}
public void Dispose()
{
_httpClient.Dispose();
}
}
{
"status": "success",
"url": "https://media.ayrshare.com/9abf1426d6ce9122ef11c72bd62e59807c5cc083/8UbyBjHTxgHkAC1I37e6O.jpg",
"platform": "instagram",
"mode": "blur",
"effects": {
"color": "#A020F0"
}
}
{
"action": "resize",
"status": "error",
"code": 312,
"message": "Invalid extension type. Extension: null. Please verify the extension is one of the following: png, jpg, jpeg and the file is accessible."
}
Media
تغيير حجم الصورة
غيّر حجم صورة إلى أبعاد وسائل التواصل الاجتماعي، أو أضف علامات مائية، أو اقتطعها
POST
/
media
/
resize
curl \
-H "Authorization: Bearer API_KEY" \
-H 'Content-Type: application/json' \
-d '{"mediaUrl": "https://img.ayrshare.com/012/gb.jpg", "platform": "instagram"' \
-X POST https://api.ayrshare.com/api/media/resize
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/media/resize", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`
},
body: JSON.stringify({
mediaUrl: "https://img.ayrshare.com/012/gb.jpg", // required
platform: "instagram"
})
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
payload = {'mediaUrl': 'https://img.ayrshare.com/012/gb.jpg',
'platforms': 'instagram'}
headers = {'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY'}
r = requests.post('https://api.ayrshare.com/api/media/resize',
json=payload,
headers=headers)
print(r.json())
<?php
$curl = curl_init();
$data = array (
"mediaUrl" => "https://img.ayrshare.com/012/gb.jpg",
"platforms" => "instagram"
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.ayrshare.com/api/media/resize',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer API_KEY',
'Accept-Encoding: gzip'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
public class AyrshareApiClient
{
private readonly HttpClient _httpClient;
private readonly string _apiKey;
private const string BaseUrl = "https://api.ayrshare.com/api";
public AyrshareApiClient(string apiKey)
{
_apiKey = apiKey ?? throw new ArgumentNullException(nameof(apiKey));
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {_apiKey}");
}
public async Task<string> ResizeMediaAsync(string mediaUrl, string platform)
{
try
{
var requestData = new
{
mediaUrl = mediaUrl,
platform = platform
};
var content = new StringContent(
JsonSerializer.Serialize(requestData),
Encoding.UTF8,
"application/json"
);
var response = await _httpClient.PostAsync($"{BaseUrl}/media/resize", content);
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();
return jsonResponse;
}
catch (HttpRequestException ex)
{
throw new Exception($"Failed to resize media: {ex.Message}", ex);
}
}
public void Dispose()
{
_httpClient.Dispose();
}
}
{
"status": "success",
"url": "https://media.ayrshare.com/9abf1426d6ce9122ef11c72bd62e59807c5cc083/8UbyBjHTxgHkAC1I37e6O.jpg",
"platform": "instagram",
"mode": "blur",
"effects": {
"color": "#A020F0"
}
}
{
"action": "resize",
"status": "error",
"code": 312,
"message": "Invalid extension type. Extension: null. Please verify the extension is one of the following: png, jpg, jpeg and the file is accessible."
}
للشبكات الاجتماعية متطلبات محددة لصور وسائل التواصل الاجتماعي. تتيح لك نقطة نهاية تغيير الحجم اختيار حجم صورة متوافق مع الشبكة الاجتماعية، وإضافة علامات مائية، وتغيير الخلفيات، وإضافة تأثيرات، والاقتطاع، والمزيد.
افتراضيًا سيغيّر تغيير الحجم أبعاد الصورة، لكنه لن يقتطع الصورة. يمكنك بدلًا من ذلك اقتطاع الصورة. راجع أدناه للتفاصيل.
يمكنك أيضًا تحديد أبعاد مخصصة باستخدام حقل
يجب تحديد إما
يمكنك أيضًا تحديد أبعاد مخصصة وإحداثيات اقتطاع اختيارية باستخدام حقل
يجب تحديد إما
مثال صورة مع تشويش:
مثال صورة بعلامة مائية في الموضع southeast:
مثال صورة بخلفية ملونة:
مثال صورة بتدرج رمادي:
مثال التحويل إلى WebP:
معاملات الترويسة
معاملات الجسم
string
مطلوب
عنوان URL للصورة المراد تغيير حجمها. يجب أن يبدأ بـ
https://array
مطلوب
منصة الوسائط الاجتماعية التي سيُغيَّر حجم الـ URL لها. راجع خيارات المنصة
للتفاصيل.
object
أرسل ملف الوسائط كائن نموذج multipart form-data. مطلوب إذا لم يكن
imageUrl موجودًا.object
عنوان URL وموضع اختياري للعلامة المائية التي ستُطبَّق على الصورة بعد تغيير حجمها. ستظهر العلامة المائية
افتراضيًا في الزاوية اليمنى السفلى للصورة. راجع العلامة المائية
للتفاصيل.
string
غيّر الشفافية والألوان وما إلى ذلك. راجع خيارات التأثيرات
للتفاصيل.
object
كائن يحدد
width وheight لتغيير الحجم. في حال الاقتطاع، يمكنك اختياريًا تحديد إحداثيات x وy للمركز.
الافتراضي هو مركز الصورة.الأبعاد
{
"width": 500,
"height": 500,
"xCoordinate": 35, // optional for crop mode
"yCoordinate": 50 // optional for crop mode
}
العرض والارتفاع مطلوبان إذا لم تُحدَّد المنصة.
boolean
يحول تلقائيًا إلى ملف JPG، مثلًا من PNG إلى JPG. سيُستخدم مستوى جودة 75%.
راجع التحويل إلى JPG للتفاصيل.
boolean
يحول تلقائيًا إلى ملف WebP، مثلًا من PNG إلى WebP. سيُستخدم مستوى جودة 75%.
راجع التحويل إلى WebP للتفاصيل.
خيارات المنصة
حدّد منصة كسلسلة نصية لاستخدام الأبعاد المحددة مسبقًا للصورة، أو يمكنك تحديد أبعادك الخاصة باستخدام حقلdimensions.
على سبيل المثال، سيؤدي "platform": "facebook" إلى تعيين أبعاد الصورة إلى عرض 1200 بكسل وارتفاع 630 بكسل.
facebook: عرض 1200 بكسل، ارتفاع 630 بكسل.instagram: عرض 1080 بكسل، ارتفاع 1080 بكسل.instagram_landscape: عرض 1080 بكسل، ارتفاع 680 بكسل.instagram_portrait: عرض 1080 بكسل، ارتفاع 1920 بكسل.instagram_special: عرض 1080 بكسل، ارتفاع 800 بكسل.linkedin: عرض 1200 بكسل، ارتفاع 627 بكسل.pinterest: عرض 1080 بكسل، ارتفاع 1920 بكسل.tiktok: عرض 1080 بكسل، ارتفاع 1920 بكسل.twitter: عرض 1600 بكسل، ارتفاع 900 بكسل.
mode مضبوطًا على crop مع حقول dimensions وxCoordinate وyCoordinate.
الوضع
Resize
Resize هو الوضع الافتراضي الذي سيُغيّر أبعاد الصورة مع الحفاظ على نسبة العرض إلى الارتفاع. غيّر حجم الصورة إلى الأبعاد المحددة دون اقتطاع أي محتوى. مثال JSON:Resize
{
"mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
"platform": "instagram",
"mode": "resize"
}
dimensions:
Resize مع أبعاد
{
"mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
"mode": "resize",
"dimensions": {
"width": 800,
"height": 600
}
}
platform أو حقلي الأبعاد width وheight.
Crop
سيقتطع Crop الصورة إلى الأبعاد المحددة. افتراضيًا، سيكون إحداثي المركز هو مركز الصورة. يمكنك أيضًا تحديد إحداثيات x/y الخاصة بك. مثال JSON:Crop
{
"mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
"platform": "instagram",
"mode": "crop"
}
dimensions:
Crop مع أبعاد
{
"mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
"mode": "crop",
"dimensions": {
"width": 1080,
"height": 1080,
"xCoordinate": 35,
"yCoordinate": 50
}
}
platform أو حقلي الأبعاد width وheight.
للاقتطاع المربع، إذا كان width أو height أقل من أبعاد الصورة المُقدَّمة، فستُستخدم القيمة الأصغر من width أو height. على سبيل المثال، إذا كانت الصورة 1200x800 وكان الاقتطاع المطلوب 1080x1080، فستكون الصورة المُعادة 800x800.
Blur
سيُكرر تأثير Blur الصورة كخلفية ويُطبّق تشويشًا (blur) على الصورة. مثال JSON للتشويش:Blur
{
"mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
"platform": "instagram",
"mode": "blur"
}
العلامة المائية
نظرة عامة على العلامة المائية
يمكنك إضافة علامة مائية إلى الصورة بتوفير URL يجب أن يبدأ بـhttps:// وموضع اختياري.
ستظهر العلامة المائية افتراضيًا في الزاوية اليمنى السفلى من الصورة — southeast.
نوصي بصورة PNG ذات خلفية شفافة.
مثال JSON للعلامة المائية:
Watermark
{
"mediaUrl": "https://img.ayrshare.com/random/photo-13.jpg",
"platform": "instagram",
"watermark": {
"url": "https://img.ayrshare.com/012/100-percent.png",
"position": "northeast" // optional
}
}
موضع العلامة المائية
يمكن أن يكون موضع العلامة المائية أحد التالي:northnortheasteastsoutheastsouthsouthwestwestnorthwestcenter
خيارات التأثيرات
القيمة الست عشرية للون
قيمة ست عشرية للون خلفية التشويش. تنطبق فقط إذا كان"mode": "blur". قيمة سلسلة، على سبيل المثال "#A020F0"
مثال JSON لخلفية ملونة:
خلفية ملونة
{
"mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
"platform": "instagram",
"mode": "blur",
"effects": {
"color": "#A020F0"
}
}
اللون: تدرج رمادي، Sepia، عكس (Invert)
يمكنك تغيير اللون الأساسي للصورة بتحديدgrayscale أو sepia أو invert. الحقل "blur": true غير مطلوب ولا ينبغي استخدامه إذا لم ترغب في وجود خلفية.
مثال JSON لتدرج رمادي:
Grayscale
{
"mediaUrl": "https://img.ayrshare.com/random/photo-13.jpg",
"platform": "instagram",
"effects": {
"color": "grayscale"
}
}
الشفافية
اضبط شفافية الصورة. مدى القيمة الرقمية: 0 - 1. مثال JSON للشفافية:Opacity
{
"effects": {
"opacity": 0.2
}
}
الجودة
بالنسبة لصور JPG أو JPEG، حدّد جودة الصورة، أو مقدار الضغط. كلما انخفض الرقم زاد الضغط لكن قلّت جودة الصورة. كلما زاد الرقم قلّ الضغط لكن زادت جودة الصورة. مدى القيمة الرقمية: 0 - 100. مثال JSON للجودة:Quality
{
"effects": {
"quality": 20
}
}
التحويل إلى JPG أو WebP
يتيح لك الخيارانconvertToJpg وconvertToWebP تحويل الصور من صيغتها الأصلية (مثل PNG) إلى صيغة JPG أو WebP على التوالي.
افتراضيًا، ستكون للصور المحوَّلة إعدادات جودة 75%.
يمكنك تخصيص مستوى الضغط باستخدام معامل quality في كائن التأثيرات.
لاحظ أنه إذا كانت الصورة المصدر بالفعل بصيغة JPG واستخدمت convertToJpg، فسيقوم API ببساطة بتغيير حجم الصورة إلى الأبعاد التي حددتها دون تغيير الصيغة.
مثال التحويل إلى JPG:
Convert to JPG
{
"convertToJpg": true
}
Convert to WebP
{
"convertToWebP": true
}
curl \
-H "Authorization: Bearer API_KEY" \
-H 'Content-Type: application/json' \
-d '{"mediaUrl": "https://img.ayrshare.com/012/gb.jpg", "platform": "instagram"' \
-X POST https://api.ayrshare.com/api/media/resize
const API_KEY = "API_KEY";
fetch("https://api.ayrshare.com/api/media/resize", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`
},
body: JSON.stringify({
mediaUrl: "https://img.ayrshare.com/012/gb.jpg", // required
platform: "instagram"
})
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
payload = {'mediaUrl': 'https://img.ayrshare.com/012/gb.jpg',
'platforms': 'instagram'}
headers = {'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY'}
r = requests.post('https://api.ayrshare.com/api/media/resize',
json=payload,
headers=headers)
print(r.json())
<?php
$curl = curl_init();
$data = array (
"mediaUrl" => "https://img.ayrshare.com/012/gb.jpg",
"platforms" => "instagram"
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.ayrshare.com/api/media/resize',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer API_KEY',
'Accept-Encoding: gzip'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
public class AyrshareApiClient
{
private readonly HttpClient _httpClient;
private readonly string _apiKey;
private const string BaseUrl = "https://api.ayrshare.com/api";
public AyrshareApiClient(string apiKey)
{
_apiKey = apiKey ?? throw new ArgumentNullException(nameof(apiKey));
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {_apiKey}");
}
public async Task<string> ResizeMediaAsync(string mediaUrl, string platform)
{
try
{
var requestData = new
{
mediaUrl = mediaUrl,
platform = platform
};
var content = new StringContent(
JsonSerializer.Serialize(requestData),
Encoding.UTF8,
"application/json"
);
var response = await _httpClient.PostAsync($"{BaseUrl}/media/resize", content);
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();
return jsonResponse;
}
catch (HttpRequestException ex)
{
throw new Exception($"Failed to resize media: {ex.Message}", ex);
}
}
public void Dispose()
{
_httpClient.Dispose();
}
}
{
"status": "success",
"url": "https://media.ayrshare.com/9abf1426d6ce9122ef11c72bd62e59807c5cc083/8UbyBjHTxgHkAC1I37e6O.jpg",
"platform": "instagram",
"mode": "blur",
"effects": {
"color": "#A020F0"
}
}
{
"action": "resize",
"status": "error",
"code": 312,
"message": "Invalid extension type. Extension: null. Please verify the extension is one of the following: png, jpg, jpeg and the file is accessible."
}