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

# Bild in der Größe anpassen

> Ein Bild auf Social-Media-Abmessungen skalieren, Wasserzeichen hinzufügen oder zuschneiden

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} />

Die sozialen Netzwerke haben [spezifische Anforderungen](/media-guidelines) an Social-Media-Bilder. Der Resize-Endpunkt ermöglicht es Ihnen, eine mit einem sozialen Netzwerk kompatible Bildgröße auszuwählen, Wasserzeichen hinzuzufügen, Hintergründe zu ändern, Effekte hinzuzufügen, zuzuschneiden und mehr.

Standardmäßig ändert die Größenanpassung die Abmessungen eines Bildes, ohne es zuzuschneiden. Sie können das Bild stattdessen zuschneiden. Details siehe unten.

## Header-Parameter

<HeaderAPI noProfileKey={true} />

## Body-Parameter

<ParamField body="imageUrl" type="string" required>
  URL des Bildes, dessen Größe angepasst werden soll. Muss mit `https://` beginnen.
</ParamField>

<ParamField body="platform" type="array" required>
  Social-Media-Plattform, für die die URL skaliert wird. Details siehe [Plattform-Optionen](/apis/media/resize#platform-options).
</ParamField>

<ParamField body="file" type="object">
  Senden Sie die Mediendatei als Multipart-Form-Data-Objekt. Erforderlich, wenn `imageUrl` nicht vorhanden ist.
</ParamField>

<ParamField body="watermark" type="object">
  URL und optionale Position des Wasserzeichens, das auf das skalierte Bild angewendet werden soll. Das Wasserzeichen erscheint
  standardmäßig in der unteren rechten Ecke des Bildes. Details siehe [Wasserzeichen](/apis/media/resize#watermark).
</ParamField>

<ParamField body="effects" type="string">
  Ändern Sie Deckkraft, Farben usw. Details siehe [Effekt-Optionen](/apis/media/resize#effects-options).
</ParamField>

<ParamField body="dimensions" type="object">
  Objekt, das `width` und `height` für die Größenanpassung angibt. Beim Zuschneiden können Sie optional die mittleren `x`- und `y`-Koordinaten angeben.
  Standard ist die Mitte des Bildes.

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

  <Note>Breite und Höhe sind erforderlich, wenn keine Plattform angegeben ist.</Note>
</ParamField>

<ParamField body="mode" type="string" default="resize">
  Wert: `resize`, `blur` oder `crop`. Details siehe [Modus](/apis/media/resize#mode).
</ParamField>

<ParamField body="convertToJpg" type="boolean">
  Konvertiert automatisch in eine JPG-Datei, zum Beispiel von einer PNG- in eine JPG-Datei. Es wird eine Qualität von 75 % verwendet.
  Details siehe [In JPG konvertieren](/apis/media/resize#convert-to-a-jpg-or-webp).
</ParamField>

<ParamField body="convertToWebP" type="boolean">
  Konvertiert automatisch in eine WebP-Datei, zum Beispiel von einer PNG- in eine WebP-Datei. Es wird eine Qualität von 75 % verwendet.
  Details siehe [In WebP konvertieren](/apis/media/resize#convert-to-a-jpg-or-webp).
</ParamField>

### Plattform-Optionen

Geben Sie eine Plattform als String an, um vordefinierte Abmessungen für das Bild zu verwenden, oder legen Sie mit dem Feld `dimensions` eigene Abmessungen fest.

Beispielsweise setzt `"platform": "facebook"` die Abmessungen des Bildes auf 1200 px Breite und 630 px Höhe.

<ul class="custom-bullets">
  <li>`facebook`: 1200 px Breite, 630 px Höhe.</li>
  <li>`instagram`: 1080 px Breite, 1080 px Höhe.</li>
  <li>`instagram_landscape`: 1080 px Breite, 680 px Höhe.</li>
  <li>`instagram_portrait`: 1080 px Breite, 1920 px Höhe.</li>
  <li>`instagram_special`: 1080 px Breite, 800 px Höhe.</li>
  <li>`linkedin`: 1200 px Breite, 627 px Höhe.</li>
  <li>`pinterest`: 1080 px Breite, 1920 px Höhe.</li>
  <li>`tiktok`: 1080 px Breite, 1920 px Höhe.</li>
  <li>`twitter`: 1600 px Breite, 900 px Höhe.</li>
</ul>

Beachten Sie, dass beim Skalieren auf diese Abmessungen das Bild nicht zugeschnitten wird.
Wenn Sie das Bild zuschneiden möchten, können Sie den Parameter `mode` auf `crop` setzen und die Felder `dimensions` sowie `xCoordinate` und `yCoordinate` verwenden.

### Modus

#### Resize

Resize ist der Standardmodus, der die Abmessungen eines Bildes ändert und dabei das Seitenverhältnis beibehält.
Skaliert das Bild auf die angegebenen Abmessungen, ohne Inhalte zuzuschneiden.

Beispiel-JSON:

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

Sie können auch eigene Abmessungen über das Feld `dimensions` angeben:

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

Es muss entweder `platform` oder die Dimensionsfelder `width` und `height` angegeben werden.

#### Crop

Crop schneidet das Bild auf die angegebenen Abmessungen zu. Standardmäßig ist die Mittelkoordinate die Mitte des Bildes. Sie können auch eigene x/y-Koordinaten angeben.

Beispiel-JSON:

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

Sie können auch benutzerdefinierte Abmessungen und optionale Zuschneidekoordinaten über das Feld `dimensions` angeben:

```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
  }
}
```

Es muss entweder `platform` oder die Dimensionsfelder `width` und `height` angegeben werden.

Bei quadratischen Zuschnitten wird, wenn `width` oder `height` kleiner als die Abmessungen des bereitgestellten Bildes sind, der kleinere Wert von `width` oder `height` verwendet. Beispiel: Wenn das Bild 1200x800 groß ist und der angeforderte Zuschnitt 1080x1080 lautet, wird ein Bild mit 800x800 zurückgegeben.

#### Blur

Der Blur-Effekt dupliziert das Bild als Hintergrund und verschwimmt das Bild.

Beispiel-Blur-JSON:

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

Beispiel-Blur-Bild:

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

### Wasserzeichen

#### Übersicht Wasserzeichen

Sie können dem Bild ein Wasserzeichen hinzufügen, indem Sie eine URL angeben, die mit `https://` beginnen muss, sowie optional eine Position.
Das Wasserzeichen erscheint standardmäßig in der unteren rechten Ecke des Bildes – `southeast`.

Wir empfehlen ein PNG mit transparentem Hintergrund.

Beispiel-Wasserzeichen-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
  }
}
```

Beispielbild mit Wasserzeichen in Position „southeast":

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

#### Position des Wasserzeichens

Die Position des Wasserzeichens kann einer der folgenden Werte sein:

<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>

### Effekt-Optionen

#### Farbe hexadezimal

Hexadezimaler Wert für die Farbe des Hintergrunds beim Blur-Effekt. Nur anwendbar, wenn `"mode": "blur"`. String-Wert, z. B. `"#A020F0"`.

Beispiel-JSON für farbigen Hintergrund:

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

Beispielbild mit farbigem Hintergrund:

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

#### Farbe: Graustufen, Sepia, Invertieren

Sie können die primäre Bildfarbe ändern, indem Sie `grayscale`, `sepia` oder `invert` angeben. Das Feld `"blur": true` ist nicht erforderlich und sollte nicht verwendet werden, wenn Sie keinen Hintergrund wünschen.

Beispiel-JSON für Graustufen:

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

Beispielbild in Graustufen:

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

#### Deckkraft

Legt die Deckkraft des Bildes fest. Zahlenwertebereich: 0 – 1.

Beispiel-Deckkraft-JSON:

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

#### Qualität

Für JPG- oder JPEG-Bilder geben Sie die Qualität bzw. den Kompressionsgrad des Bildes an.
Je niedriger die Zahl, desto stärker komprimiert, aber desto geringer die Bildqualität.
Je höher die Zahl, desto weniger komprimiert, aber desto höher die Bildqualität. Zahlenwertebereich: 0 – 100.

Beispiel-Qualitäts-JSON:

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

### In JPG oder WebP konvertieren

Mit den Optionen `convertToJpg` und `convertToWebP` können Sie Bilder aus ihrem Originalformat (z. B. PNG) in das JPG- bzw. WebP-Format konvertieren.
Standardmäßig werden die konvertierten Bilder mit einer Qualitätseinstellung von 75 % erstellt.

Sie können die Kompressionsstufe mit dem Parameter [quality](/apis/media/resize#quality) im Objekt `effects` anpassen.

Beachten Sie, dass die API das Bild bei Verwendung von `convertToJpg` einfach auf Ihre angegebenen Abmessungen skaliert, ohne das Format zu ändern, wenn Ihr Quellbild bereits ein JPG ist.

Beispiel: In JPG konvertieren:

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

Beispiel: In WebP konvertieren:

```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>
