Files
SnapOtter/apps/docs/tr/tools/image/find-duplicates.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

116 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: "Algısal karma kullanarak yinelenen ve neredeyse yinelenen görselleri tespit edin."
i18n_source_hash: 4e1f4413f90f
i18n_provenance: human
i18n_output_hash: 60bf8830f7de
---
# Yinelenenleri Bul {#find-duplicates}
Algısal karma (dHash) kullanarak yinelenenleri ve neredeyse yinelenenleri tespit etmek için birden fazla görsel yükleyin. Benzer görselleri birlikte gruplandırır, her gruptaki en iyi kalitedeki sürümü belirler ve olası alan tasarrufunu hesaplar.
## API Uç Noktası {#api-endpoint}
`POST /api/v1/tools/image/find-duplicates`
Birden fazla görsel dosyası ve isteğe bağlı bir JSON `settings` alanı içeren multipart form verisini kabul eder.
## Parametreler {#parameters}
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|-----------|------|----------|---------|-------------|
| threshold | number | Hayır | `8` | Görselleri yinelenen olarak kabul etmek için maksimum Hamming mesafesi (0 ile 20 arası). Daha düşük = daha katı eşleştirme |
### Dosya Alanları {#file-fields}
Multipart isteğinde en az 2 görsel dosyası yükleyin (tümü `file` alan adını veya dosya bölümleri için herhangi bir alan adını kullanarak).
## Örnek İstek {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/image/find-duplicates \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \
-F "file=@photo3.jpg" \
-F "file=@photo4.jpg" \
-F 'settings={"threshold": 8}'
```
## Örnek Yanıt {#example-response}
```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": []
}
```
## Yanıt Alanları {#response-fields}
| Alan | Tür | Açıklama |
|-------|------|-------------|
| totalImages | number | Başarıyla analiz edilen görsel sayısı |
| duplicateGroups | array | Yinelenen görsel grupları |
| uniqueImages | number | Herhangi bir yinelenen grubun parçası olmayan görsel sayısı |
| spaceSaveable | number | En iyi olmayan yinelenenleri kaldırarak tasarruf edilebilecek toplam bayt |
| skippedFiles | array | İşlenemeyen dosyalar (dosya adı ve nedeniyle birlikte) |
### Yinelenen Grup Nesnesi {#duplicate-group-object}
| Alan | Tür | Açıklama |
|-------|------|-------------|
| groupId | number | Grup tanımlayıcısı |
| files | array | Bu yinelenen gruptaki görseller |
### Dosya Nesnesi (bir grup içinde) {#file-object-within-a-group}
| Alan | Tür | Açıklama |
|-------|------|-------------|
| filename | string | Orijinal dosya adı |
| similarity | number | Referans görsele (gruptaki ilki) benzerlik yüzdesi |
| width | number | Piksel cinsinden görsel genişliği |
| height | number | Piksel cinsinden görsel yüksekliği |
| fileSize | number | Bayt cinsinden dosya boyutu |
| format | string | Görsel biçimi |
| isBest | boolean | Bunun en yüksek kalitedeki sürüm olup olmadığı (en fazla piksel, en büyük dosya) |
| thumbnail | string veya null | Önizleme için Base64 JPEG küçük resim (200px genişliğinde) |
## Notlar {#notes}
- Algısal benzerlik tespiti için 128 bitlik bir dHash (64 bitlik satır + 64 bitlik sütun) kullanır. Bu, yeniden boyutlandırma, yeniden sıkıştırma ve küçük düzenlemeler arasında bile yinelenenleri yakalar.
- Eşik değeri, karmalar arasındaki maksimum Hamming mesafesini temsil eder. Varsayılan 8 değeri, yanlış pozitiflerden kaçınırken neredeyse yinelenenleri yakalar. Yalnızca piksel bakımından aynı olanlar için 0, çok gevşek eşleştirme için 15-20 kullanın.
- Her gruptaki "en iyi" görsel, en fazla piksele (genişlik x yükseklik) sahip olandır; eşitlik durumunda dosya boyutu belirleyicidir.
- En az 2 görsel gereklidir. Doğrulama veya çözümlemede başarısız olan dosyalar, tüm isteğin başarısız olmasına neden olmak yerine `skippedFiles` içinde bildirilir.
- Küçük resimler, veri URI'leri olarak kodlanmış 200px genişliğinde JPEG önizlemeleridir.
- Tüm yaygın biçimler desteklenir (HEIC, RAW, PSD, SVG otomatik olarak çözümlenir).