This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Duplikate finden

Laden Sie mehrere Bilder hoch, um Duplikate und nahezu Duplikate mithilfe von perzeptuellem Hashing (dHash) zu erkennen. Gruppiert ähnliche Bilder, identifiziert die beste Qualitätsversion in jeder Gruppe und berechnet mögliche Speichereinsparungen.

API-Endpunkt

POST /api/v1/tools/image/find-duplicates

Akzeptiert Multipart-Formulardaten mit mehreren Bilddateien und einem optionalen JSON-Feld settings.

Parameter

ParameterTypErforderlichStandardBeschreibung
thresholdnumberNein8Maximaler Hamming-Abstand, um Bilder als Duplikate zu betrachten (0 bis 20). Niedriger = strengere Übereinstimmung

Datei-Felder

Laden Sie mindestens 2 Bilddateien in der Multipart-Anfrage hoch (alle unter dem Feldnamen file oder einem beliebigen Feldnamen für Dateibestandteile).

Beispielanfrage

bash
curl -X POST http://localhost:1349/api/v1/tools/image/find-duplicates \
  -H "Authorization: Bearer si_your-api-key" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F 'settings={"threshold": 8}'

Beispielantwort

json
{
  "totalImages": 4,
  "duplicateGroups": [
    {
      "groupId": 1,
      "files": [
        {
          "filename": "photo1.jpg",
          "similarity": 100,
          "width": 4032,
          "height": 3024,
          "fileSize": 2450000,
          "format": "jpeg",
          "isBest": true,
          "thumbnail": "data:image/jpeg;base64,/9j/..."
        },
        {
          "filename": "photo2.jpg",
          "similarity": 96.88,
          "width": 1920,
          "height": 1440,
          "fileSize": 850000,
          "format": "jpeg",
          "isBest": false,
          "thumbnail": "data:image/jpeg;base64,/9j/..."
        }
      ]
    }
  ],
  "uniqueImages": 2,
  "spaceSaveable": 850000,
  "skippedFiles": []
}

Antwortfelder

FeldTypBeschreibung
totalImagesnumberAnzahl der erfolgreich analysierten Bilder
duplicateGroupsarrayGruppen doppelter Bilder
uniqueImagesnumberAnzahl der Bilder, die zu keiner Duplikatgruppe gehören
spaceSaveablenumberGesamtzahl der Bytes, die durch Entfernen der nicht besten Duplikate eingespart werden könnten
skippedFilesarrayDateien, die nicht verarbeitet werden konnten (mit Dateiname und Grund)

Objekt „Duplikatgruppe“

FeldTypBeschreibung
groupIdnumberGruppenbezeichner
filesarrayBilder in dieser Duplikatgruppe

Datei-Objekt (innerhalb einer Gruppe)

FeldTypBeschreibung
filenamestringUrsprünglicher Dateiname
similaritynumberÄhnlichkeitsprozentsatz zum Referenzbild (das erste in der Gruppe)
widthnumberBildbreite in Pixeln
heightnumberBildhöhe in Pixeln
fileSizenumberDateigröße in Bytes
formatstringBildformat
isBestbooleanOb dies die Version mit der höchsten Qualität ist (die meisten Pixel, größte Datei)
thumbnailstring oder nullBase64-JPEG-Vorschaubild (200 px breit) für die Vorschau

Hinweise

  • Verwendet einen 128-Bit-dHash (64-Bit-Zeile + 64-Bit-Spalte) zur Erkennung perzeptueller Ähnlichkeit. Damit werden Duplikate selbst über Größenänderungen, Neukompression und kleinere Bearbeitungen hinweg erfasst.
  • Der Schwellenwert steht für den maximalen Hamming-Abstand zwischen Hashes. Der Standardwert 8 erfasst nahezu Duplikate und vermeidet dabei Fehltreffer. Verwenden Sie 0 für ausschließlich pixelidentische Bilder oder 15-20 für eine sehr lockere Übereinstimmung.
  • Das „beste“ Bild in jeder Gruppe ist dasjenige mit den meisten Pixeln (Breite x Höhe), wobei die Dateigröße als Tiebreaker dient.
  • Es sind mindestens 2 Bilder erforderlich. Dateien, die die Validierung oder Decodierung nicht bestehen, werden in skippedFiles gemeldet, anstatt die gesamte Anfrage scheitern zu lassen.
  • Vorschaubilder sind 200 px breite JPEG-Vorschauen, die als Data-URIs codiert sind.
  • Alle gängigen Formate werden unterstützt (HEIC, RAW, PSD, SVG werden automatisch decodiert).