> ## Documentation Index
> Fetch the complete documentation index at: https://ayrshare.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# छवि का आकार बदलें

> छवि को सोशल मीडिया आयामों में आकार बदलें, वॉटरमार्क जोड़ें, या क्रॉप करें

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={true} />

सोशल नेटवर्क के पास सोशल मीडिया छवियों के लिए [विशिष्ट आवश्यकताएँ](/media-guidelines) होती हैं। resize एंडपॉइंट आपको एक सोशल नेटवर्क संगत छवि आकार चुनने, वॉटरमार्क जोड़ने, पृष्ठभूमि बदलने, प्रभाव जोड़ने, क्रॉप करने और अधिक की अनुमति देता है।

डिफ़ॉल्ट रूप से आकार बदलने से छवि के आयाम बदल जाएंगे, लेकिन छवि क्रॉप नहीं होगी। आप इसके बजाय छवि क्रॉप कर सकते हैं। विवरण के लिए नीचे देखें।

## हैडर पैरामीटर

<HeaderAPI noProfileKey={true} />

## बॉडी पैरामीटर

<ParamField body="imageUrl" type="string" required>
  आकार बदलने के लिए छवि का URL। `https://` से शुरू होना चाहिए
</ParamField>

<ParamField body="platform" type="array" required>
  सोशल मीडिया प्लेटफ़ॉर्म जिसके लिए URL का आकार बदला जाएगा। विवरण के लिए [platform options](/apis/media/resize#platform-options) देखें।
</ParamField>

<ParamField body="file" type="object">
  मीडिया फ़ाइल को multipart form-data ऑब्जेक्ट के रूप में भेजें। यदि `imageUrl` मौजूद नहीं है तो आवश्यक।
</ParamField>

<ParamField body="watermark" type="object">
  आकार बदली गई छवि पर लागू करने के लिए वॉटरमार्क का URL और वैकल्पिक स्थिति। वॉटरमार्क डिफ़ॉल्ट रूप से छवि के निचले दाएँ कोने में दिखाई देगा। विवरण के लिए [watermark](/apis/media/resize#watermark) देखें।
</ParamField>

<ParamField body="effects" type="string">
  अपारदर्शिता, रंग आदि बदलें। विवरण के लिए [effects options](/apis/media/resize#effects-options) देखें।
</ParamField>

<ParamField body="dimensions" type="object">
  आकार बदलने के लिए `width` और `height` निर्दिष्ट करने वाला ऑब्जेक्ट। क्रॉपिंग करते समय, आप वैकल्पिक रूप से केंद्र `x` और `y` निर्देशांक निर्दिष्ट कर सकते हैं।
  डिफ़ॉल्ट छवि का केंद्र है।

  ```json Dimensions theme={"system"}
  {
    "width": 500,
    "height": 500,
    "xCoordinate": 35, // optional for crop mode
    "yCoordinate": 50 // optional for crop mode
  }
  ```

  <Note>यदि प्लेटफ़ॉर्म निर्दिष्ट नहीं है तो चौड़ाई और ऊँचाई आवश्यक।</Note>
</ParamField>

<ParamField body="mode" type="string" default="resize">
  मान: `resize`, `blur`, या `crop`. विवरण के लिए [mode](/apis/media/resize#mode) देखें।
</ParamField>

<ParamField body="convertToJpg" type="boolean">
  स्वचालित रूप से JPG फ़ाइल में परिवर्तित करें, जैसे PNG से JPG फ़ाइल में। 75% गुणवत्ता का उपयोग किया जाएगा।
  विवरण के लिए [convert to a JPG](/apis/media/resize#convert-to-a-jpg-or-webp) देखें।
</ParamField>

<ParamField body="convertToWebP" type="boolean">
  स्वचालित रूप से WebP फ़ाइल में परिवर्तित करें, जैसे PNG से WebP फ़ाइल में। 75% गुणवत्ता का उपयोग किया जाएगा।
  विवरण के लिए [convert to a WebP](/apis/media/resize#convert-to-a-jpg-or-webp) देखें।
</ParamField>

### प्लेटफ़ॉर्म विकल्प

छवि के पूर्वनिर्धारित आयामों का उपयोग करने के लिए एक प्लेटफ़ॉर्म को String के रूप में निर्दिष्ट करें, या आप `dimensions` फ़ील्ड के साथ अपना खुद का निर्दिष्ट कर सकते हैं।

उदाहरण के लिए `"platform": "facebook"` छवि के आयाम को चौड़ाई 1200px और ऊँचाई 630px सेट करेगा।

<ul class="custom-bullets">
  <li>`facebook`: 1200px चौड़ाई, 630px ऊँचाई।</li>
  <li>`instagram`: 1080px चौड़ाई, 1080px ऊँचाई।</li>
  <li>`instagram_landscape`: 1080px चौड़ाई, 680px ऊँचाई।</li>
  <li>`instagram_portrait`: 1080px चौड़ाई, 1920px ऊँचाई।</li>
  <li>`instagram_special`: 1080px चौड़ाई, 800px ऊँचाई।</li>
  <li>`linkedin`: 1200px चौड़ाई, 627px ऊँचाई।</li>
  <li>`pinterest`: 1080px चौड़ाई, 1920px ऊँचाई।</li>
  <li>`tiktok`: 1080px चौड़ाई, 1920px ऊँचाई।</li>
  <li>`twitter`: 1600px चौड़ाई, 900px ऊँचाई।</li>
</ul>

नोट, इन आयामों में आकार बदलने से छवि क्रॉप नहीं होगी।
यदि आप छवि क्रॉप करना चाहते हैं, तो आप `dimensions` और `xCoordinate` और `yCoordinate` फ़ील्ड के साथ `mode` पैरामीटर को `crop` पर सेट करके उपयोग कर सकते हैं।

### मोड

#### Resize

Resize डिफ़ॉल्ट मोड है जो अपने पहलू अनुपात को बनाए रखते हुए एक छवि के आयाम बदल देगा।
किसी भी सामग्री को क्रॉप किए बिना छवि को निर्दिष्ट आयामों में आकार बदलें।

उदाहरण JSON:

```json Resize theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
  "platform": "instagram",
  "mode": "resize"
}
```

आप `dimensions` फ़ील्ड का उपयोग करके कस्टम आयाम भी निर्दिष्ट कर सकते हैं:

```json Resize with Dimensions theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
  "mode": "resize",
  "dimensions": {
    "width": 800,
    "height": 600
  }
}
```

`platform` या dimensions फ़ील्ड `width` और `height` में से एक को निर्दिष्ट किया जाना चाहिए।

#### Crop

Crop छवि को निर्दिष्ट आयामों में काट देगा "क्रॉप" करेगा। डिफ़ॉल्ट रूप से केंद्र निर्देशांक छवि का केंद्र होगा। आप अपने स्वयं के x/y निर्देशांक भी निर्दिष्ट कर सकते हैं।

उदाहरण JSON:

```json Crop theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
  "platform": "instagram",
  "mode": "crop"
}
```

आप `dimensions` फ़ील्ड का उपयोग करके कस्टम आयाम और वैकल्पिक क्रॉप निर्देशांक भी निर्दिष्ट कर सकते हैं:

```json Crop with Dimensions theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
  "mode": "crop",
  "dimensions": {
    "width": 1080,
    "height": 1080,
    "xCoordinate": 35,
    "yCoordinate": 50
  }
}
```

`platform` या dimensions फ़ील्ड `width` और `height` में से एक को निर्दिष्ट किया जाना चाहिए।

वर्गाकार क्रॉप के लिए, यदि `width` या `height` प्रदान की गई छवि के आयामों से कम हैं, तो `width` या `height` का छोटा उपयोग किया जाएगा। उदाहरण के लिए, यदि छवि 1200x800 है और अनुरोधित क्रॉप 1080x1080 है, तो लौटाई गई छवि 800x800 होगी।

#### Blur

Blur प्रभाव छवि को पृष्ठभूमि के रूप में डुप्लिकेट करेगा और छवि को धुंधला करेगा।

उदाहरण blur JSON:

```json Blur theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
  "platform": "instagram",
  "mode": "blur"
}
```

उदाहरण blur छवि:

<img src="https://mintcdn.com/ayrshare/XRYzr5UdPjyr_kPK/images/apis/media/blur.webp?fit=max&auto=format&n=XRYzr5UdPjyr_kPK&q=85&s=8267a09d89389d8c2569d074bfb39c39" alt="Background with Blur" width="1080" height="1080" data-path="images/apis/media/blur.webp" />

### Watermark

#### Watermark अवलोकन

आप एक URL प्रदान करके छवि में वॉटरमार्क जोड़ सकते हैं, जिसे `https://` से शुरू होना चाहिए और एक वैकल्पिक स्थिति।
वॉटरमार्क डिफ़ॉल्ट रूप से छवि के नीचे दाएँ कोने में दिखाई देगा - `southeast`।

हम एक पारदर्शी पृष्ठभूमि वाले PNG की सिफारिश करते हैं।

उदाहरण watermark JSON:

```json Watermark theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/random/photo-13.jpg",
  "platform": "instagram",
  "watermark": {
    "url": "https://img.ayrshare.com/012/100-percent.png",
    "position": "northeast" // optional
  }
}
```

southeast स्थिति में उदाहरण वॉटरमार्क छवि:

<img src="https://mintcdn.com/ayrshare/XRYzr5UdPjyr_kPK/images/apis/media/watermark.webp?fit=max&auto=format&n=XRYzr5UdPjyr_kPK&q=85&s=f11b147362574fae2cc9c7eaccdcaf86" alt="Add Watermark" width="1080" height="1080" data-path="images/apis/media/watermark.webp" />

#### Watermark स्थिति

वॉटरमार्क की स्थिति निम्न में से एक हो सकती है:

<ul class="custom-bullets">
  <li>`north`</li>
  <li>`northeast`</li>
  <li>`east`</li>
  <li>`southeast`</li>
  <li>`south`</li>
  <li>`southwest`</li>
  <li>`west`</li>
  <li>`northwest`</li>
  <li>`center`</li>
</ul>

### Effects विकल्प

#### रंग हेक्साडेसिमल

blur के लिए पृष्ठभूमि के रंग के लिए हेक्साडेसिमल मान। केवल तभी लागू होता है जब `"mode": "blur"`. स्ट्रिंग मान, जैसे `"#A020F0"`

उदाहरण रंग पृष्ठभूमि JSON:

```json Color Background theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/012/gb.jpg",
  "platform": "instagram",
  "mode": "blur",
  "effects": {
    "color": "#A020F0"
  }
}
```

उदाहरण रंग पृष्ठभूमि छवि:

<img src="https://mintcdn.com/ayrshare/XRYzr5UdPjyr_kPK/images/apis/media/color-background.webp?fit=max&auto=format&n=XRYzr5UdPjyr_kPK&q=85&s=2d69c8f9c1145f2655c90ef13226c93c" alt="Add Colored Background" width="1080" height="1080" data-path="images/apis/media/color-background.webp" />

#### रंग: Grayscale, Sepia, Invert

आप `grayscale`, `sepia`, या `invert` निर्दिष्ट करके प्राथमिक छवि रंग बदल सकते हैं। यदि आप पृष्ठभूमि नहीं चाहते हैं तो `"blur": true` फ़ील्ड आवश्यक नहीं है और उपयोग नहीं की जानी चाहिए।

उदाहरण grayscale JSON:

```json Grayscale theme={"system"}
{
  "mediaUrl": "https://img.ayrshare.com/random/photo-13.jpg",
  "platform": "instagram",
  "effects": {
    "color": "grayscale"
  }
}
```

उदाहरण grayscale छवि:

<img src="https://mintcdn.com/ayrshare/XRYzr5UdPjyr_kPK/images/apis/media/grayscale.webp?fit=max&auto=format&n=XRYzr5UdPjyr_kPK&q=85&s=e8aac84e84b2879a0dbc113bd9d67c66" alt="Add Grayscale" width="1080" height="1080" data-path="images/apis/media/grayscale.webp" />

#### Opacity

छवि की अपारदर्शिता सेट करें। संख्या मान श्रेणी: 0 - 1।

उदाहरण opacity JSON:

```json Opacity theme={"system"}
{
  "effects": {
    "opacity": 0.2
  }
}
```

#### गुणवत्ता

JPG या JEPG छवियों के लिए छवि की गुणवत्ता, या संपीड़न की मात्रा निर्दिष्ट करें।
संख्या जितनी कम होगी उतनी अधिक संपीड़ित, लेकिन छवि गुणवत्ता कम।
संख्या जितनी अधिक होगी उतनी कम संपीड़ित, लेकिन छवि गुणवत्ता उच्च। संख्या मान श्रेणी: 0 - 100।

उदाहरण quality JSON:

```json Quality theme={"system"}
{
  "effects": {
    "quality": 20
  }
}
```

### JPG या WebP में परिवर्तित करें

`convertToJpg` और `convertToWebP` विकल्प आपको छवियों को उनके मूल प्रारूप (जैसे PNG) से क्रमशः JPG या WebP प्रारूप में बदलने की अनुमति देते हैं।
डिफ़ॉल्ट रूप से, परिवर्तित छवियों में 75% की गुणवत्ता सेटिंग होगी।

आप effects ऑब्जेक्ट में [quality](/apis/media/resize#quality) पैरामीटर का उपयोग करके संपीड़न स्तर को अनुकूलित कर सकते हैं।

नोट करें कि यदि आपकी स्रोत छवि पहले से ही JPG है और आप `convertToJpg` का उपयोग करते हैं, तो API बस छवि को आपके निर्दिष्ट आयामों में आकार बदल देगा बिना प्रारूप बदले।

उदाहरण JPG में परिवर्तित करें:

```json Convert to JPG theme={"system"}
{
  "convertToJpg": true
}
```

उदाहरण WebP में परिवर्तित करें:

```json Convert to WebP theme={"system"}
{
  "convertToWebP": true
}
```

<RequestExample>
  ```bash cURL theme={"system"}
    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
  ```

  ```javascript JavaScript theme={"system"}
  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);
  ```

  ```python Python theme={"system"}
  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 PHP theme={"system"}
  <?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;
  ```

  ```csharp C# theme={"system"}
  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();
      }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
    "status": "success",
    "url": "https://media.ayrshare.com/9abf1426d6ce9122ef11c72bd62e59807c5cc083/8UbyBjHTxgHkAC1I37e6O.jpg",
    "platform": "instagram",
    "mode": "blur",
    "effects": {
      "color": "#A020F0"
    }
  }
  ```

  ```json 400: Failed Resize theme={"system"}
  {
    "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."
  }
  ```
</ResponseExample>
