mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
---
|
||||
description: "Parlaklık, kontrast, doygunluk, sıcaklık, ton, kanallar ayarlayın ve renk efektleri uygulayın."
|
||||
i18n_source_hash: 41b35fe5c2ba
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 31104c563c12
|
||||
---
|
||||
|
||||
# Renkleri Ayarla {#adjust-colors}
|
||||
|
||||
Parlaklık, kontrast, pozlama, doygunluk, sıcaklık, renk tonu, ton döndürme, kanal başına seviyeler ve tek tıkla efektleri (gri tonlama, sepya, ters çevir) tek bir uç noktada birleştiren kapsamlı renk ayarlama aracı.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/adjust-colors`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| brightness | sayı | Hayır | `0` | Parlaklık ayarı (-100 ile 100 arası) |
|
||||
| contrast | sayı | Hayır | `0` | Kontrast ayarı (-100 ile 100 arası) |
|
||||
| exposure | sayı | Hayır | `0` | Pozlama / orta ton gama (-100 ile 100 arası) |
|
||||
| saturation | sayı | Hayır | `0` | Renk doygunluğu (-100 ile 100 arası) |
|
||||
| temperature | sayı | Hayır | `0` | Beyaz dengesi: soğuk/mavi ile sıcak/turuncu arası (-100 ile 100 arası) |
|
||||
| tint | sayı | Hayır | `0` | Renk tonu kayması: yeşil ile macenta arası (-100 ile 100 arası) |
|
||||
| hue | sayı | Hayır | `0` | Derece cinsinden ton döndürme (-180 ile 180 arası) |
|
||||
| sharpness | sayı | Hayır | `0` | Keskinleştirme gücü (0 ile 100 arası) |
|
||||
| red | sayı | Hayır | `100` | Kırmızı kanal seviyesi (0 ile 200 arası, 100 = değişmemiş) |
|
||||
| green | sayı | Hayır | `100` | Yeşil kanal seviyesi (0 ile 200 arası, 100 = değişmemiş) |
|
||||
| blue | sayı | Hayır | `100` | Mavi kanal seviyesi (0 ile 200 arası, 100 = değişmemiş) |
|
||||
| effect | dize | Hayır | `"none"` | Renk efekti: `none`, `grayscale`, `sepia`, `invert` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"brightness": 20, "contrast": 10, "saturation": -30, "effect": "none"}'
|
||||
```
|
||||
|
||||
Sıcak, retro bir görünüm uygulayın:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/adjust-colors \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"temperature": 40, "saturation": -15, "contrast": 10, "effect": "sepia"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2380000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Tüm parametreler nötr değerlere varsayılır; böylece yalnızca ihtiyacınız olanı ayarlayabilirsiniz.
|
||||
- Ayarlamalar şu sırayla uygulanır: parlaklık, kontrast, pozlama, doygunluk/ton, sıcaklık/renk tonu, keskinlik, kanallar, efektler.
|
||||
- Sıcaklık, mavi-turuncu ve yeşil-macenta eksenlerinde 3x3 renk yeniden birleştirme matrisi kullanır.
|
||||
- Pozlama, Sharp'ın gama işlevine eşlenir (pozitif orta tonları aydınlatır, negatif karartır).
|
||||
- Bu uç nokta, eski `/api/v1/tools/image/brightness-contrast`, `/api/v1/tools/image/saturation`, `/api/v1/tools/image/color-channels` ve `/api/v1/tools/image/color-effects` yollarında da yanıt verir. Hepsi aynı şemayı kullanır.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girişleri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
description: "Bir görsel tuvalini AI outpainting ile genişletin, her yöne uzatın ve yeni alanları özgün görsele uyacak şekilde doldurun."
|
||||
i18n_source_hash: 1b00db4ed40d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 88b5666e7cec
|
||||
---
|
||||
|
||||
# AI Tuval Genişletme {#ai-canvas-expand}
|
||||
|
||||
Bir görselin tuvalini AI destekli dolgu (outpainting) ile genişletin. Görseli her yöne uzatır ve yeni alanları mevcut görselle eşleşen AI tarafından üretilen içerikle doldurur.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/ai-canvas-expand`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için `/api/v1/jobs/{jobId}/progress` SSE üzerinden yoklanır)
|
||||
|
||||
**Model paketi:** `object-eraser-colorize` (1-2 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | dosya | Evet | - | Görsel dosyası (multipart) |
|
||||
| extendTop | tam sayı | Hayır | `0` | Üstten uzatılacak piksel sayısı |
|
||||
| extendRight | tam sayı | Hayır | `0` | Sağdan uzatılacak piksel sayısı |
|
||||
| extendBottom | tam sayı | Hayır | `0` | Alttan uzatılacak piksel sayısı |
|
||||
| extendLeft | tam sayı | Hayır | `0` | Soldan uzatılacak piksel sayısı |
|
||||
| tier | dize | Hayır | `"balanced"` | Kalite kademesi: `fast`, `balanced`, `high` |
|
||||
| format | dize | Hayır | `"auto"` | Çıktı biçimi: `auto`, `png`, `jpg`, `jpeg`, `webp`, `tiff`, `gif`, `avif`, `heic`, `heif`, `jxl` |
|
||||
| quality | tam sayı | Hayır | `95` | Çıktı kalitesi (1-100) |
|
||||
|
||||
En az bir uzatma yönü 0'dan büyük olmalıdır.
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/ai-canvas-expand \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` adresinde SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Expanding canvas...","percent":50}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE üzerinden) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/photo_extended.png",
|
||||
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
|
||||
"originalSize": 300000,
|
||||
"processedSize": 520000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `object-eraser-colorize` model paketinin yüklü olmasını gerektirir (1-2 GB).
|
||||
- Genişletilen bölgeler için içerik üretmek amacıyla LaMa tabanlı outpainting kullanır.
|
||||
- `tier` parametresi hız ile kaliteyi dengeler: `fast` sonuçları olası eserlerle hızlıca üretir, `high` daha uzun sürer ancak daha pürüzsüz ve tutarlı dolgular üretir.
|
||||
- Uzatma değerleri piksel cinsindendir. Nihai görsel boyutları şöyle olur: özgün genişlik + extendLeft + extendRight, özgün yükseklik + extendTop + extendBottom.
|
||||
- Tarayıcıda önizlenemeyen çıktı biçimleri (HEIC, JXL, TIFF) için ana çıktının yanında bir WebP önizlemesi üretilir.
|
||||
- Otomatik çözme yoluyla HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini destekler.
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
description: "AI kullanarak görsel arka planını düz bir renk veya gradyanla değiştirin."
|
||||
i18n_source_hash: 930fe8890e55
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 974354540f2e
|
||||
---
|
||||
|
||||
# Arka Plan Değiştirme {#background-replace}
|
||||
|
||||
Bir görselin arka planını düz bir renk veya gradyanla değiştirin. AI modeli özneyi algılar, özgün arka planı kaldırır ve özneyi seçtiğiniz arka plan üzerine yerleştirir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/background-replace`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| backgroundType | dize | Hayır | `"color"` | Arka plan modu: `color` veya `gradient` |
|
||||
| color | dize | Hayır | `"#ffffff"` | Arka plan onaltılık rengi (backgroundType `color` olduğunda) |
|
||||
| gradientColor1 | dize | Hayır | - | Birinci gradyan onaltılık rengi |
|
||||
| gradientColor2 | dize | Hayır | - | İkinci gradyan onaltılık rengi |
|
||||
| gradientAngle | tam sayı | Hayır | `180` | Derece cinsinden gradyan açısı (0-360) |
|
||||
| feather | tam sayı | Hayır | `0` | Kenar yumuşatma yarıçapı (0-20) |
|
||||
| format | dize | Hayır | `"png"` | Çıktı biçimi: `png` veya `webp` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/background-replace \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"backgroundType": "color", "color": "#2563eb", "feather": 2}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
İlerlemeyi SSE üzerinden `GET /api/v1/jobs/{jobId}/progress` adresinden takip edin. İş tamamlandığında, SSE akışı indirme URL'sini içeren bir `completed` olayı yayar.
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu, `202 Accepted` döndüren ve eşzamansız işleyen AI destekli bir araçtır. İlerleme güncellemelerini ve nihai sonucu almak için SSE uç noktasına bağlanın.
|
||||
- **background-removal** özellik paketinin yüklü olmasını gerektirir. Paket mevcut değilse `501` döndürür.
|
||||
- HEIC, RAW, PSD ve SVG girişleri işlenmeden önce otomatik olarak çözülür.
|
||||
- Öznenin çevresindeki saydamlığı korumak için çıktı varsayılan olarak PNG'dir.
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Code 128, EAN-13, UPC-A, Code 39, ITF-14 ve Data Matrix biçimlerinde barkod oluşturun."
|
||||
i18n_source_hash: e84b1df40c7e
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 40bd623b2d96
|
||||
---
|
||||
|
||||
# Barkod Oluşturucu {#barcode-generator}
|
||||
|
||||
Metin girişinden barkod görselleri oluşturun. Code 128, EAN-13, UPC-A, Code 39, ITF-14 ve Data Matrix biçimlerini destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/barcode-generate`
|
||||
|
||||
Bir `application/json` gövdesi kabul eder (multipart değil). Barkod, yüklenen bir dosyadan değil, sağlanan metinden oluşturulur.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | dize | Evet | - | Barkodda kodlanacak metin (1-256 karakter) |
|
||||
| type | dize | Hayır | `"code128"` | Barkod biçimi: `code128`, `ean13`, `upca`, `code39`, `itf14`, `datamatrix` |
|
||||
| scale | tam sayı | Hayır | `3` | Görsel ölçek faktörü (1-8) |
|
||||
| includeText | boole | Hayır | `true` | Metnin barkodun altında görüntülenip görüntülenmeyeceği |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/barcode-generate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"text": "5901234123457", "type": "ean13", "scale": 4}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/barcode.png",
|
||||
"originalSize": 0,
|
||||
"processedSize": 4520
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Çoğu aracın aksine bu uç nokta, barkodlar yüklenen bir dosya yerine metinden oluşturulduğundan multipart form verisi değil, bir JSON gövdesi kabul eder.
|
||||
- EAN-13 tam olarak 12 veya 13 haneli olmalıdır. UPC-A tam olarak 11 veya 12 haneli olmalıdır. Bir kontrol hanesi atlanırsa otomatik olarak hesaplanır.
|
||||
- Code 128 en esnek biçimdir ve tüm ASCII karakter kümesini destekler.
|
||||
- Data Matrix, daha uzun dizeleri kompakt bir kareye kodlamaya uygun 2 boyutlu bir barkod üretir.
|
||||
@@ -0,0 +1,97 @@
|
||||
---
|
||||
description: "Görselleri QR kodları, barkodlar ve 2D kodlar için tarayın ve açıklamalı çıktı alın."
|
||||
i18n_source_hash: 97c9d395c257
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 711284980e48
|
||||
---
|
||||
|
||||
# Barkod Okuyucu {#barcode-reader}
|
||||
|
||||
Yüklenen görselleri her türden barkod ve QR kodu için tarayın. Algılanan her kod için çözülmüş metni, barkod türünü ve konum verilerini döndürür. Ayrıca algılanan kodların çevresinde renkli sınırlayıcı kutular bulunan açıklamalı bir görsel oluşturur.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/barcode-read`
|
||||
|
||||
Bir görsel dosyası ve isteğe bağlı bir JSON `settings` alanı içeren multipart form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| tryHarder | boole | Hayır | `true` | Okunması zor barkodlar için agresif tarama modunu etkinleştirir (daha yavaş ama daha kapsamlı) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/barcode-read \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@receipt.jpg" \
|
||||
-F 'settings={"tryHarder": true}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"filename": "receipt.jpg",
|
||||
"barcodes": [
|
||||
{
|
||||
"type": "QRCode",
|
||||
"text": "https://example.com/product/123",
|
||||
"position": {
|
||||
"topLeft": { "x": 100, "y": 50 },
|
||||
"topRight": { "x": 250, "y": 50 },
|
||||
"bottomLeft": { "x": 100, "y": 200 },
|
||||
"bottomRight": { "x": 250, "y": 200 }
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "EAN-13",
|
||||
"text": "5901234123457",
|
||||
"position": {
|
||||
"topLeft": { "x": 50, "y": 400 },
|
||||
"topRight": { "x": 300, "y": 400 },
|
||||
"bottomLeft": { "x": 50, "y": 450 },
|
||||
"bottomRight": { "x": 300, "y": 450 }
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotatedUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/annotated-receipt.png",
|
||||
"previewUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/annotated-receipt.png"
|
||||
}
|
||||
```
|
||||
|
||||
## Yanıt Alanları {#response-fields}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| filename | dize | Özgün dosya adı |
|
||||
| barcodes | dizi | Algılanan barkod nesnelerinin dizisi |
|
||||
| annotatedUrl | dize veya null | Açıklamalı görseli indirme URL'si (barkod bulunmazsa null) |
|
||||
| previewUrl | dize veya null | annotatedUrl ile aynı (ön uç önizleme uyumluluğu için) |
|
||||
|
||||
### Barkod Nesnesi {#barcode-object}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| type | dize | Barkod biçimi (QRCode, EAN-13, Code128, DataMatrix, PDF417 vb.) |
|
||||
| text | dize | Barkodun çözülmüş içeriği |
|
||||
| position | nesne | topLeft, topRight, bottomLeft, bottomRight koordinatlı sınırlayıcı kutu |
|
||||
|
||||
## Desteklenen Barkod Türleri {#supported-barcode-types}
|
||||
|
||||
1D barkodlar: Code128, Code39, Code93, Codabar, EAN-8, EAN-13, ITF, UPC-A, UPC-E
|
||||
|
||||
2D barkodlar: QRCode, DataMatrix, PDF417, Aztec, MaxiCode
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Barkod algılama için zxing-wasm kitaplığını kullanır.
|
||||
- Açıklamalı görsel, algılanan her barkodun üzerine renkli çokgen sınırlayıcı kutular ve numaralandırılmış etiketler yerleştirir.
|
||||
- Tek bir görselde en fazla 255 barkod algılanabilir.
|
||||
- Barkod bulunmazsa, `barcodes` boş bir dizidir ve `annotatedUrl` null'dur.
|
||||
- `tryHarder` modu, işlem süresi pahasına daha kapsamlı tarama yapar. Temiz, düzgün hizalanmış barkodların daha hızlı işlenmesi için devre dışı bırakın.
|
||||
- Açıklamalı çıktı her zaman PNG biçimindedir.
|
||||
- HEIC, RAW, PSD ve SVG girişleri taranmadan önce otomatik olarak çözülür.
|
||||
- İşlemeden önce EXIF yönlendirmesi otomatik olarak uygulanır.
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
description: "Sade ekran görüntülerini gradyan arka planlar, cihaz çerçeveleri, gölgeler ve sosyal medya boyutlarıyla cilalı görsellere dönüştürün."
|
||||
i18n_source_hash: 8fd8a930a45e
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 03020cf85347
|
||||
---
|
||||
|
||||
# Ekran Görüntüsünü Güzelleştir {#beautify-screenshot}
|
||||
|
||||
Ekran görüntülerine gradyan arka planlar, cihaz çerçeveleri, gölgeler, filigranlar ve sosyal medya boyutları ekleyin. Ürün pazarlaması, sosyal medya ve dokümantasyon için cilalı görseller oluşturmak için idealdir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/beautify`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| backgroundType | dize | Hayır | `"linear-gradient"` | Arka plan türü: `solid`, `linear-gradient`, `radial-gradient`, `image`, `transparent` |
|
||||
| backgroundColor | dize | Hayır | `"#667eea"` | Düz arka plan rengi (`backgroundType` `solid` olduğunda kullanılır) |
|
||||
| gradientStops | dizi | Hayır | `[{"color":"#667eea","position":0},{"color":"#764ba2","position":100}]` | Gradyan renk durakları (en az 2). Her durak bir `color` (onaltılık) ve bir `position` (0-100) değerine sahiptir. |
|
||||
| gradientAngle | sayı | Hayır | 135 | Derece cinsinden gradyan açısı (0 ile 360 arası) |
|
||||
| padding | sayı | Hayır | 64 | Görselin çevresindeki piksel cinsinden dolgu (0 ile 256 arası) |
|
||||
| borderRadius | sayı | Hayır | 12 | Ekran görüntüsünün köşe yarıçapı (0 ile 64 arası) |
|
||||
| shadowPreset | dize | Hayır | `"subtle"` | Gölge ön ayarı: `none`, `subtle`, `medium`, `dramatic`, `custom` |
|
||||
| shadowBlur | sayı | Hayır | 20 | Özel gölge bulanıklık yarıçapı (0 ile 100 arası, `shadowPreset` `custom` olduğunda kullanılır) |
|
||||
| shadowOffsetX | sayı | Hayır | 0 | Özel gölge yatay konumu (-50 ile 50 arası) |
|
||||
| shadowOffsetY | sayı | Hayır | 10 | Özel gölge dikey konumu (-50 ile 50 arası) |
|
||||
| shadowColor | dize | Hayır | `"#000000"` | Onaltılık olarak özel gölge rengi |
|
||||
| shadowOpacity | sayı | Hayır | 30 | Özel gölge opaklığı (0 ile 100 arası) |
|
||||
| frame | dize | Hayır | `"none"` | Cihaz veya pencere çerçevesi: `none`, `macos-light`, `macos-dark`, `windows-light`, `windows-dark`, `browser-light`, `browser-dark`, `iphone`, `iphone-dark`, `macbook`, `macbook-dark`, `ipad`, `ipad-dark` |
|
||||
| frameTitle | dize | Hayır | - | Pencere çerçevesi başlık çubuklarında görüntülenen başlık metni |
|
||||
| socialPreset | dize | Hayır | `"none"` | Sosyal medya boyutlarına yeniden boyutlandır: `none`, `twitter`, `linkedin`, `instagram-square`, `instagram-story`, `facebook`, `producthunt` |
|
||||
| watermarkText | dize | Hayır | - | İsteğe bağlı filigran metni yerleşimi |
|
||||
| watermarkPosition | dize | Hayır | `"bottom-right"` | Filigran konumu: `top-left`, `top-right`, `bottom-left`, `bottom-right`, `center` |
|
||||
| watermarkOpacity | sayı | Hayır | 50 | Filigran opaklığı (0 ile 100 arası) |
|
||||
| outputFormat | dize | Hayır | `"png"` | Çıktı biçimi: `png`, `jpeg`, `webp` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/beautify \
|
||||
-F "file=@screenshot.png" \
|
||||
-F 'settings={"backgroundType":"linear-gradient","gradientStops":[{"color":"#667eea","position":0},{"color":"#764ba2","position":100}],"gradientAngle":135,"padding":64,"borderRadius":12,"shadowPreset":"medium","frame":"macos-dark","socialPreset":"twitter"}'
|
||||
```
|
||||
|
||||
### Arka Plan Görseliyle {#with-background-image}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/beautify \
|
||||
-F "file=@screenshot.png" \
|
||||
-F "backgroundImage=@bg-texture.jpg" \
|
||||
-F 'settings={"backgroundType":"image","padding":80,"borderRadius":16,"shadowPreset":"dramatic"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/screenshot.png",
|
||||
"originalSize": 234567,
|
||||
"processedSize": 567890
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- İki dosya alanı kabul eder: `file` (zorunlu, ana ekran görüntüsü) ve `backgroundImage` (isteğe bağlı, `backgroundType` `image` olduğunda kullanılır).
|
||||
- HEIC, RAW, PSD ve SVG giriş biçimlerini destekler (otomatik olarak çözülür).
|
||||
- Gölge ön ayarları belirli değerlere eşlenir:
|
||||
- `subtle`: bulanıklık 20, offsetY 4, opaklık %20
|
||||
- `medium`: bulanıklık 40, offsetY 10, opaklık %35
|
||||
- `dramatic`: bulanıklık 80, offsetY 20, opaklık %50
|
||||
- Sosyal medya ön ayarları, `contain` modunu kullanarak nihai çıktıyı hedef boyutlara sığacak şekilde yeniden boyutlandırır:
|
||||
- `twitter`: 1600x900
|
||||
- `linkedin`: 1200x627
|
||||
- `instagram-square`: 1080x1080
|
||||
- `instagram-story`: 1080x1920
|
||||
- `facebook`: 1200x630
|
||||
- `producthunt`: 1270x760
|
||||
- Cihaz çerçeveleri (`iphone`, `macbook`, `ipad`) görselin çevresine bir donanım çerçevesi uygular ve `borderRadius` ayarını atlar.
|
||||
- Saydamlık gerektiğinde (gölge, köşe yarıçapı, cihaz çerçeveleri veya saydam arka plan), `jpeg` seçilmiş olsa bile çıktı PNG'ye zorlanır.
|
||||
- Görsel arka planlar pipeline/toplu modda desteklenmez.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: "AI kullanarak özneyi keskin tutarken arka planı bulanıklaştırın."
|
||||
i18n_source_hash: 9073f10e6e9d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 99348e4cfecf
|
||||
---
|
||||
|
||||
# Arka Planı Bulanıklaştır {#blur-background}
|
||||
|
||||
Bir görselin arka planını, özneyi keskin tutarken bulanıklaştırın. AI modeli özneyi ayırır, özgün arka plana bir bulanıklık uygular ve keskin özneyi üzerine yerleştirir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/blur-background`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| intensity | tam sayı | Hayır | `50` | Bulanıklık yoğunluğu (1-100) |
|
||||
| feather | tam sayı | Hayır | `0` | Kenar yumuşatma yarıçapı (0-20) |
|
||||
| format | dize | Hayır | `"png"` | Çıktı biçimi: `png` veya `webp` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/blur-background \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"intensity": 75, "feather": 3}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
İlerlemeyi SSE üzerinden `GET /api/v1/jobs/{jobId}/progress` adresinden takip edin. İş tamamlandığında, SSE akışı indirme URL'sini içeren bir `completed` olayı yayar.
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu, `202 Accepted` döndüren ve eşzamansız işleyen AI destekli bir araçtır. İlerleme güncellemelerini ve nihai sonucu almak için SSE uç noktasına bağlanın.
|
||||
- **background-removal** özellik paketinin yüklü olmasını gerektirir. Paket mevcut değilse `501` döndürür.
|
||||
- Daha yüksek yoğunluk değerleri daha güçlü bir bulanıklık efekti üretir. 80'in üzerindeki değerler belirgin, bokeh benzeri bir ayrım oluşturur.
|
||||
- HEIC, RAW, PSD ve SVG girişleri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
description: "Gizlilik ve GDPR uyumlu anonimleştirme için AI yüz algılamayla görsellerdeki yüzleri otomatik algılayıp bulanıklaştırın."
|
||||
i18n_source_hash: fb861c12aea5
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: bd0aa1e11901
|
||||
---
|
||||
|
||||
# Yüz / PII Bulanıklaştırma {#face-pii-blur}
|
||||
|
||||
AI destekli yüz algılama (MediaPipe) kullanarak görsellerdeki yüzleri otomatik algılayın ve bulanıklaştırın.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/blur-faces`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için `/api/v1/jobs/{jobId}/progress` SSE üzerinden yoklanır)
|
||||
|
||||
**Model paketi:** `face-detection` (200-300 MB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | dosya | Evet | - | Görsel dosyası (multipart) |
|
||||
| blurRadius | sayı | Hayır | `30` | Algılanan yüzlere uygulanan bulanıklık yarıçapı (1-100) |
|
||||
| sensitivity | sayı | Hayır | `0.5` | Yüz algılama hassasiyeti (0-1). Daha düşük değerler daha yüksek güvenle daha az yüz algılar |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/blur-faces \
|
||||
-F "file=@group-photo.jpg" \
|
||||
-F 'settings={"blurRadius":40,"sensitivity":0.3}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` adresinde SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Detecting faces...","percent":40}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE üzerinden) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/group-photo_blurred.jpg",
|
||||
"originalSize": 450000,
|
||||
"processedSize": 420000,
|
||||
"facesDetected": 3,
|
||||
"faces": [
|
||||
{"x": 100, "y": 50, "w": 80, "h": 80},
|
||||
{"x": 300, "y": 60, "w": 75, "h": 75},
|
||||
{"x": 500, "y": 55, "w": 85, "h": 85}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Yüz Algılanmadı {#no-faces-detected}
|
||||
|
||||
Hiç yüz bulunmazsa, sonuç bir uyarı içerir:
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"facesDetected": 0,
|
||||
"warning": "No faces detected in this image. Try increasing detection sensitivity."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `face-detection` model paketinin yüklü olmasını gerektirir (200-300 MB).
|
||||
- Çıktı biçimi giriş biçimiyle otomatik olarak eşleşir.
|
||||
- `faces` dizisi, algılanan her yüz için sınırlayıcı kutu koordinatlarını (x, y, genişlik, yükseklik) içerir.
|
||||
- Kısmen örtülü olanlar dahil daha fazla yüz algılamak için `sensitivity` değerini artırın (1.0'a yaklaştırın).
|
||||
- Otomatik çözme yoluyla HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini destekler.
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: "Görsellere kenarlıklar, dolgu, yuvarlatılmış köşeler ve gölgeler öngörülebilir, kontrol edilebilir bir sırayla ekleyin."
|
||||
i18n_source_hash: 8845150736a9
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 8a6edc9ba0e2
|
||||
---
|
||||
|
||||
# Kenarlık ve Çerçeve {#border-frame}
|
||||
|
||||
Görsellere kenarlıklar, dolgu, yuvarlatılmış köşeler ve gölgeler ekleyin. Araç efektleri şu sırayla uygular: dolgu, kenarlık, köşe yarıçapı, ardından gölge.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/border`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| borderWidth | sayı | Hayır | 10 | Piksel cinsinden kenarlık kalınlığı (0 ile 2000 arası) |
|
||||
| borderColor | dize | Hayır | `"#000000"` | Onaltılık olarak kenarlık rengi (ör. `#FF0000`) |
|
||||
| padding | sayı | Hayır | 0 | Görsel ile kenarlık arasındaki piksel cinsinden iç dolgu (0 ile 200 arası) |
|
||||
| paddingColor | dize | Hayır | `"#FFFFFF"` | Onaltılık olarak dolgu doldurma rengi |
|
||||
| cornerRadius | sayı | Hayır | 0 | Piksel cinsinden köşe yarıçapı (0 ile 2000 arası) |
|
||||
| shadow | boole | Hayır | `false` | Gölge eklenip eklenmeyeceği |
|
||||
| shadowBlur | sayı | Hayır | 15 | Gölge bulanıklık yarıçapı (1 ile 200 arası) |
|
||||
| shadowOffsetX | sayı | Hayır | 0 | Gölge yatay konumu (-50 ile 50 arası) |
|
||||
| shadowOffsetY | sayı | Hayır | 5 | Gölge dikey konumu (-50 ile 50 arası) |
|
||||
| shadowColor | dize | Hayır | `"#000000"` | Onaltılık olarak gölge rengi |
|
||||
| shadowOpacity | sayı | Hayır | 40 | Gölge opaklık yüzdesi (0 ile 100 arası) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/border \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.png",
|
||||
"originalSize": 456789,
|
||||
"processedSize": 523456
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Standart `createToolRoute` fabrikasını kullanır. Multipart yükleme yoluyla tek bir görsel dosyası kabul eder.
|
||||
- HEIC, RAW, PSD ve SVG giriş biçimlerini destekler (otomatik olarak çözülür).
|
||||
- İşleme sırası: önce dolgu eklenir, ardından kenarlık çevresine sarılır, sonra köşe yarıçapı uygulanır, sonra gölge birleştirilir.
|
||||
- `cornerRadius` veya `shadow` etkinleştirildiğinde, saydamlığı korumak için çıktı (giriş biçiminden bağımsız olarak) PNG'ye zorlanır. Alfayı destekleyen biçimler (PNG, WebP, AVIF) özgün biçimlerini korur.
|
||||
- Gölge şekil duyarlıdır: dikdörtgen bir gölge oluşturmak yerine yuvarlatılmış köşeleri izler.
|
||||
- `borderWidth` değerini 0'a ayarlayıp yalnızca `cornerRadius` + `shadow` kullanmak, çerçevesiz yuvarlatılmış bir gölge efekti oluşturur.
|
||||
@@ -0,0 +1,75 @@
|
||||
---
|
||||
description: "Bir kalıp şablonu kullanarak birden fazla dosyayı yeniden adlandırın ve ZIP olarak indirin."
|
||||
i18n_source_hash: 2776dcc2f71c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7f08948bcee7
|
||||
---
|
||||
|
||||
# Toplu Yeniden Adlandırma {#bulk-rename}
|
||||
|
||||
Dizin, dolgulu dizin ve özgün dosya adı için yer tutucular içeren bir kalıp şablonu kullanarak birden fazla dosyayı yeniden adlandırın. Yeniden adlandırılan tüm dosyaları içeren bir ZIP arşivi döndürür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/bulk-rename`
|
||||
|
||||
Birden fazla dosya ve bir JSON `settings` alanı içeren multipart form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| pattern | dize | Hayır | `"image-{{index}}"` | Yer tutuculu adlandırma kalıbı (en fazla 1000 karakter) |
|
||||
| startIndex | sayı | Hayır | `1` | Başlangıç dizin numarası |
|
||||
|
||||
### Kalıp Yer Tutucuları {#pattern-placeholders}
|
||||
|
||||
| Yer Tutucu | Açıklama | Örnek |
|
||||
|-------------|-------------|---------|
|
||||
| `{{index}}` | `startIndex` değerinden başlayan sıralı numara | `1`, `2`, `3` |
|
||||
| `{{padded}}` | Sıfır dolgulu sıralı numara | `01`, `02`, `03` |
|
||||
| `{{original}}` | Uzantısız özgün dosya adı | `photo`, `IMG_001` |
|
||||
|
||||
Özgün dosya uzantısı her zaman korunur.
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/bulk-rename \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo1.jpg" \
|
||||
-F "file=@photo2.jpg" \
|
||||
-F "file=@photo3.jpg" \
|
||||
-F 'settings={"pattern": "vacation-{{padded}}", "startIndex": 1}'
|
||||
```
|
||||
|
||||
Bu şunu üretir: `vacation-1.jpg`, `vacation-2.jpg`, `vacation-3.jpg`
|
||||
|
||||
Özgün dosya adını kullanma:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/bulk-rename \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@IMG_001.jpg" \
|
||||
-F "file=@IMG_002.jpg" \
|
||||
-F 'settings={"pattern": "2024-trip-{{original}}-{{index}}"}'
|
||||
```
|
||||
|
||||
Bu şunu üretir: `2024-trip-IMG_001-1.jpg`, `2024-trip-IMG_002-2.jpg`
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
Yanıt, doğrudan akıtılan bir ZIP dosyasıdır (JSON yanıtı değil). Yanıt üst bilgileri şunlardır:
|
||||
|
||||
```
|
||||
Content-Type: application/zip
|
||||
Content-Disposition: attachment; filename="renamed-a1b2c3d4.zip"
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu araç görselleri işlemez. Yalnızca dosyaları yeniden adlandırır ve bir ZIP arşivine paketler.
|
||||
- `{{padded}}` için sıfır dolgu genişliği, toplam dosya sayısına göre otomatik olarak belirlenir (ör. 100 dosya 3 haneli dolgu kullanır: `001`, `002` vb.).
|
||||
- Dosya uzantıları özgün dosya adlarından korunur.
|
||||
- Dosya adları, güvensiz karakterleri kaldırmak için temizlenir.
|
||||
- En az bir dosya sağlanmalıdır.
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
description: "Bir görseli, köşeleri saydam olacak şekilde ortalanmış bir daireye kırpın."
|
||||
i18n_source_hash: 06c50ccd96b2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c9ea430aab8c
|
||||
---
|
||||
|
||||
# Daire Kırpma {#circle-crop}
|
||||
|
||||
Bir görseli, köşeleri saydam olacak şekilde ortalanmış bir daireye kırpın. Ayarlanabilir yakınlaştırma, konum kayması, kenarlık ve çıktı boyutunu destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/circle-crop`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| zoom | sayı | Hayır | `1` | Yakınlaştırma faktörü (1-5); daha yüksek değerler daha sıkı kırpar |
|
||||
| offsetX | sayı | Hayır | `0.5` | Yatay merkez konumu (0-1) |
|
||||
| offsetY | sayı | Hayır | `0.5` | Dikey merkez konumu (0-1) |
|
||||
| borderWidth | tam sayı | Hayır | `0` | Piksel cinsinden kenarlık genişliği (0-200) |
|
||||
| borderColor | dize | Hayır | `"#ffffff"` | Onaltılık kenarlık rengi |
|
||||
| background | dize | Hayır | `"transparent"` | Köşe doldurma: `"transparent"` veya bir onaltılık renk |
|
||||
| outputSize | tam sayı | Hayır | - | Piksel cinsinden nihai kare boyutu (16-4096) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/circle-crop \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"zoom": 1.2, "borderWidth": 4, "borderColor": "#333333"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.png",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 185000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Saydam köşeleri korumak için çıktı her zaman PNG'dir (`background` düz bir renge ayarlanmadıkça).
|
||||
- Daire, görselin kısa kenarına yazılır. Daha sıkı kırpmak için `zoom`, görünür alanı kaydırmak için `offsetX`/`offsetY` kullanın.
|
||||
- `outputSize` sağlandığında, sonuç kırpmanın ardından bu kare boyutuna yeniden boyutlandırılır.
|
||||
- HEIC, RAW, PSD ve SVG girişleri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,92 @@
|
||||
---
|
||||
description: "Birden fazla görüntüyü 25'ten fazla şablon, ayarlanabilir boşluklar ve köşeler ve hücre başına kaydırma ve yakınlaştırma ile ızgara kolajlarında birleştirin."
|
||||
i18n_source_hash: 96f2055717df
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 32baf2d667fc
|
||||
---
|
||||
|
||||
# Kolaj / Izgara {#collage-grid}
|
||||
|
||||
Birden fazla görüntüyü 25'ten fazla şablonla güzel ızgara kolajlarında birleştirin. Özelleştirilebilir boşluk, köşe yarıçapı, arka plan rengi ve hücre başına kaydırma/yakınlaştırma denetimleriyle 2-9 görüntülü düzenleri destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/collage`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| templateId | string | Evet | - | Şablon düzeni kimliği (örn. `2-h-equal`, `3-left-large`, `4-grid`, `9-grid`) |
|
||||
| cells | array | Hayır | - | `imageIndex`, `panX`, `panY`, `zoom`, `objectFit` içeren hücre başına ayarlar dizisi |
|
||||
| cells[].imageIndex | integer | Evet | - | Bu hücreye yerleştirilecek görüntünün dizini (0 tabanlı) |
|
||||
| cells[].panX | number | Hayır | 0 | Yatay kaydırma ofseti (-100 ile 100 arası) |
|
||||
| cells[].panY | number | Hayır | 0 | Dikey kaydırma ofseti (-100 ile 100 arası) |
|
||||
| cells[].zoom | number | Hayır | 1 | Yakınlaştırma düzeyi (1 ile 10 arası) |
|
||||
| cells[].objectFit | string | Hayır | `"cover"` | Görüntünün hücreyi nasıl doldurduğu: `cover` veya `contain` |
|
||||
| gap | number | Hayır | 8 | Hücreler arasındaki boşluk, piksel cinsinden (0 ile 500 arası) |
|
||||
| cornerRadius | number | Hayır | 0 | Her hücre için köşe yarıçapı, piksel cinsinden (0 ile 500 arası) |
|
||||
| backgroundColor | string | Hayır | `"#FFFFFF"` | Arka plan rengi, hex olarak veya `"transparent"` |
|
||||
| aspectRatio | string | Hayır | `"free"` | Tuval en boy oranı: `free`, `1:1`, `4:3`, `3:2`, `16:9`, `9:16`, `4:5` |
|
||||
| outputFormat | string | Hayır | `"png"` | Çıktı biçimi: `png`, `jpeg`, `webp`, `avif`, `jxl` |
|
||||
| quality | number | Hayır | 90 | Çıktı kalitesi (1 ile 100 arası) |
|
||||
|
||||
## Kullanılabilir Şablonlar {#available-templates}
|
||||
|
||||
| Şablon Kimliği | Görüntüler | Düzen |
|
||||
|-------------|--------|--------|
|
||||
| `2-h-equal` | 2 | İki eşit sütun |
|
||||
| `2-v-equal` | 2 | İki eşit satır |
|
||||
| `2-h-left-large` | 2 | Sol 2/3, sağ 1/3 |
|
||||
| `2-h-right-large` | 2 | Sol 1/3, sağ 2/3 |
|
||||
| `3-left-large` | 3 | Büyük sol, sağda iki üst üste |
|
||||
| `3-right-large` | 3 | Solda iki üst üste, büyük sağ |
|
||||
| `3-top-large` | 3 | Büyük üst, altta iki sütun |
|
||||
| `3-h-equal` | 3 | Üç eşit sütun |
|
||||
| `3-v-equal` | 3 | Üç eşit satır |
|
||||
| `4-grid` | 4 | 2x2 ızgara |
|
||||
| `4-left-large` | 4 | Büyük sol, sağda üç üst üste |
|
||||
| `4-top-large` | 4 | Büyük üst, altta üç sütun |
|
||||
| `4-bottom-large` | 4 | Üstte üç sütun, büyük alt |
|
||||
| `5-top2-bottom3` | 5 | Üstte iki, altta üç |
|
||||
| `5-top3-bottom2` | 5 | Üstte üç, altta iki |
|
||||
| `5-left-large` | 5 | Büyük sol, sağda dört üst üste |
|
||||
| `5-center-large` | 5 | Büyük merkez, dört köşe |
|
||||
| `6-grid-2x3` | 6 | 2 sütun x 3 satır |
|
||||
| `6-grid-3x2` | 6 | 3 sütun x 2 satır |
|
||||
| `6-top-large` | 6 | Büyük üst, altta beş sütun |
|
||||
| `7-mosaic` | 7 | Mozaik düzeni |
|
||||
| `8-mosaic` | 8 | Mozaik düzeni |
|
||||
| `9-grid` | 9 | 3x3 ızgara |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/collage \
|
||||
-F "file=@photo1.jpg" \
|
||||
-F "file=@photo2.jpg" \
|
||||
-F "file=@photo3.jpg" \
|
||||
-F "file=@photo4.jpg" \
|
||||
-F 'settings={"templateId":"4-grid","gap":12,"cornerRadius":8,"backgroundColor":"#F5F5F5","outputFormat":"png","quality":90}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/collage.png",
|
||||
"originalSize": 2456789,
|
||||
"processedSize": 1823456
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Çok parçalı istekte birden fazla görüntü dosyası yükleyin. Görüntüler, yükleme sırasına göre şablon hücrelerine atanır.
|
||||
- Şablonun desteklediğinden daha fazla görüntü yüklenirse, fazladan görüntüler yok sayılır.
|
||||
- HEIC, RAW, PSD ve SVG giriş biçimlerini destekler (otomatik olarak çözülür).
|
||||
- Tuvalin temel boyutu en uzun kenarda 2400px'dir ve seçilen en boy oranına göre ölçeklenir.
|
||||
- `aspectRatio` değeri `"free"` olduğunda, tuval varsayılan olarak 4:3'e (2400x1800) ayarlanır.
|
||||
- Hücre başına `panX`/`panY` değerleri, kırpma penceresini hücre içinde kaydırır. 100 değeri bir kenara tamamen, -100 diğer kenara taşır.
|
||||
- `"transparent"` arka plan rengi yalnızca `png`, `webp` veya `avif` çıktı biçimleriyle korunur.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Görüntülerin farklı renk görme eksikliği türlerine sahip kişilere nasıl göründüğünü simüle edin."
|
||||
i18n_source_hash: 0b537628ba79
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5e095aa656b4
|
||||
---
|
||||
|
||||
# Renk Körlüğü Simülasyonu {#color-blindness-simulation}
|
||||
|
||||
Görüntülerin çeşitli renk körlüğü türlerine sahip kişilere nasıl göründüğünü önizlemek için renk görme eksikliğini (CVD) simüle edin. Tasarımların, grafiklerin ve arayüzün erişilebilirlik testi için kullanışlıdır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/color-blindness`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| simulationType | string | Hayır | `"deuteranomaly"` | Simüle edilecek renk görme eksikliği türü |
|
||||
|
||||
### Simülasyon Türleri {#simulation-types}
|
||||
|
||||
| Değer | Durum | Açıklama |
|
||||
|-------|-----------|-------------|
|
||||
| `protanopia` | Kırmızı körü | Kırmızı koni hücrelerinin tamamen yokluğu |
|
||||
| `deuteranopia` | Yeşil körü | Yeşil koni hücrelerinin tamamen yokluğu |
|
||||
| `tritanopia` | Mavi körü | Mavi koni hücrelerinin tamamen yokluğu |
|
||||
| `protanomaly` | Kırmızı zayıf | Azalmış kırmızı koni duyarlılığı |
|
||||
| `deuteranomaly` | Yeşil zayıf | Azalmış yeşil koni duyarlılığı (en yaygın) |
|
||||
| `tritanomaly` | Mavi zayıf | Azalmış mavi koni duyarlılığı |
|
||||
| `achromatopsia` | Tam renk körü | Renk görmenin tamamen yokluğu |
|
||||
| `blueConeMonochromacy` | Yalnızca mavi koni | Yalnızca mavi koniler işlevsel |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/color-blindness \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@design.png" \
|
||||
-F 'settings={"simulationType": "deuteranopia"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/design.png",
|
||||
"originalSize": 1850000,
|
||||
"processedSize": 1820000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Döteranomali (yeşil zayıf) varsayılan olandır çünkü en yaygın renk görme eksikliği biçimidir ve erkeklerin yaklaşık %6'sını etkiler.
|
||||
- Simülasyon, azalmış veya yok olan koni fotoreseptörlerinin algılanan renkleri nasıl değiştirdiğini modelleyen renk dönüşüm matrislerini kullanır.
|
||||
- Bu araç tahribatsızdır ve yalnızca bir önizleme üretir. Erişilebilirlik için orijinal görüntüyü değiştirmez.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girişleri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,75 @@
|
||||
---
|
||||
description: "Bir görüntüden baskın renkleri renk paleti olarak çıkarın."
|
||||
i18n_source_hash: 65ab22dd75a9
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e9020e04ff8f
|
||||
---
|
||||
|
||||
# Renk Paleti {#color-palette}
|
||||
|
||||
Bir görüntüden baskın renkleri çıkarın ve bunları hex renk değerleri olarak döndürün. En belirgin ve görsel olarak farklı renkleri tanımlamak için kuantize edilmiş frekans analizi kullanır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/color-palette`
|
||||
|
||||
Bir görüntü dosyası ve isteğe bağlı bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| count | integer | Hayır | `8` | Çıkarılacak renk sayısı (2-16) |
|
||||
| format | string | Hayır | `"hex"` | Renk biçimi: `hex`, `rgb`, `hsl` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/color-palette \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"count": 6, "format": "hex"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"filename": "photo.jpg",
|
||||
"colors": [
|
||||
"#304080",
|
||||
"#e0a060",
|
||||
"#f0f0f0",
|
||||
"#203020",
|
||||
"#a0c0e0",
|
||||
"#806040"
|
||||
],
|
||||
"hex": [
|
||||
"#304080",
|
||||
"#e0a060",
|
||||
"#f0f0f0",
|
||||
"#203020",
|
||||
"#a0c0e0",
|
||||
"#806040"
|
||||
],
|
||||
"count": 6
|
||||
}
|
||||
```
|
||||
|
||||
## Yanıt Alanları {#response-fields}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| filename | string | Temizlenmiş dosya adı |
|
||||
| colors | array | İstenen biçimdeki renk dizeleri dizisi, baskınlığa göre sıralanmış (en sık olan ilk) |
|
||||
| hex | array | Hex renk dizeleri dizisi (`format` ayarından bağımsız olarak her zaman hex) |
|
||||
| count | number | Çıkarılan renk sayısı |
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Baskınlığa göre sıralanmış en fazla `count` baskın renk döndürür (varsayılan 8, aralık 2-16), frekansa göre (en yaygın olan ilk).
|
||||
- Görüntü, analiz için dahili olarak 100x100 piksele yeniden boyutlandırılır, bu nedenle palet küçük ayrıntılardan ziyade genel renk dağılımını temsil eder.
|
||||
- Renkler, piksel popülasyonlarını en geniş aralığa sahip kanal boyunca özyinelemeli olarak bölen medyan kesme kuantizasyonu kullanılarak çıkarılır.
|
||||
- Analizden önce alfa kanalı kaldırılır, bu nedenle saydam alanlar dikkate alınmaz.
|
||||
- Bu salt okunur bir uç noktadır. İndirilebilir bir çıktı dosyası veya `jobId` üretmez.
|
||||
- HEIC, RAW, PSD ve SVG girişleri analizden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
description: "Siyah beyaz veya gri tonlamalı fotoğrafları DDColor AI modeliyle otomatik olarak renklendirin."
|
||||
i18n_source_hash: 688aa3abbdae
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 19fc5a1ea89b
|
||||
---
|
||||
|
||||
# AI Renklendirme {#ai-colorization}
|
||||
|
||||
Siyah beyaz veya gri tonlamalı fotoğrafları AI kullanarak (OpenCV DNN yedeği ile DDColor modeli) tam renkli hale getirin.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/colorize`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` yoklaması yapın)
|
||||
|
||||
**Model paketi:** `object-eraser-colorize` (1-2 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görüntü dosyası (çok parçalı) |
|
||||
| intensity | number | Hayır | `1.0` | Renk yoğunluğu (0-1). Daha düşük değerler daha ince renklendirme üretir |
|
||||
| model | string | Hayır | `"auto"` | Kullanılacak model: `auto`, `ddcolor`, `opencv` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/colorize \
|
||||
-F "file=@old-bw-photo.jpg" \
|
||||
-F 'settings={"intensity":0.9,"model":"auto"}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Colorizing...","percent":55}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/old-bw-photo_colorized.jpg",
|
||||
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
|
||||
"originalSize": 180000,
|
||||
"processedSize": 210000,
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"method": "ddcolor"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `object-eraser-colorize` model paketinin kurulu olmasını gerektirir (1-2 GB).
|
||||
- DDColor daha yüksek kaliteli sonuçlar üretir ancak daha yavaştır; OpenCV DNN biraz daha düşük kaliteyle daha hızlıdır. `auto`, kullanılabilir olduğunda OpenCV yedeği ile DDColor kullanır.
|
||||
- `intensity` parametresi, orijinal gri tonlama ile AI ile renklendirilmiş sonuç arasında harmanlama yapar. Tam renk için 1.0, kısmen doygunluğu azaltılmış vintage bir görünüm için daha düşük değerler kullanın.
|
||||
- Çıktı biçimi otomatik olarak giriş biçimiyle eşleşir.
|
||||
- Tarayıcıda önizlenemeyen çıktı biçimleri için ana çıktının yanı sıra bir WebP önizlemesi oluşturulur.
|
||||
- Otomatik çözme yoluyla HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini destekler.
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
description: "İki görüntüyü piksel düzeyinde fark görselleştirmesi ve benzerlik puanıyla yan yana karşılaştırın."
|
||||
i18n_source_hash: cc0a02bd75c6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7b4fe2d118ec
|
||||
---
|
||||
|
||||
# Görüntü Karşılaştırma {#image-compare}
|
||||
|
||||
Piksel düzeyinde bir fark haritası ve sayısal bir benzerlik yüzdesi hesaplamak için iki görüntü yükleyin. Çıktı, değişen bölgeleri kırmızıyla vurgulayan bir fark görüntüsüdür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/compare`
|
||||
|
||||
**İki** görüntü dosyasıyla çok parçalı form verilerini kabul eder. Ayarlar alanı gerekmez.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
Bu aracın yapılandırılabilir parametresi yoktur. Tam olarak iki görüntü dosyası yükleyin.
|
||||
|
||||
| Alan | Tür | Zorunlu | Açıklama |
|
||||
|-------|------|----------|-------------|
|
||||
| file (ilk) | file | Evet | İlk görüntü |
|
||||
| file (ikinci) | file | Evet | İkinci görüntü |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/compare \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@original.jpg" \
|
||||
-F "file=@modified.jpg"
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"similarity": 94.52,
|
||||
"dimensions": { "width": 1920, "height": 1080 },
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/diff.png",
|
||||
"originalSize": 4900000,
|
||||
"processedSize": 280000
|
||||
}
|
||||
```
|
||||
|
||||
## Yanıt Alanları {#response-fields}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| jobId | string | Fark görüntüsünü indirmek için iş tanımlayıcısı |
|
||||
| similarity | number | İki görüntü arasındaki yüzde benzerlik (0 ile 100 arası) |
|
||||
| dimensions | object | Karşılaştırma için kullanılan genişlik ve yükseklik |
|
||||
| downloadUrl | string | Oluşturulan fark görüntüsünü indirme URL'si |
|
||||
| originalSize | number | Her iki giriş görüntüsünün bayt cinsinden birleşik boyutu |
|
||||
| processedSize | number | Fark çıktısı görüntüsünün bayt cinsinden boyutu |
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Her iki görüntü de karşılaştırmadan önce aynı boyutlara (her eksenin maksimumu) yeniden boyutlandırılır.
|
||||
- Fark görüntüsü, değişim büyüklüğüyle orantılı opaklıkla farkları kırmızıyla vurgular. Aynı veya neredeyse aynı pikseller (fark < 10) orijinalin yarı saydam versiyonları olarak gösterilir.
|
||||
- Benzerlik, tüm pikseller boyunca ortalama piksel farkının tersi olarak hesaplanır ve yüzde olarak ifade edilir.
|
||||
- %100 benzerlik, görüntülerin (karşılaştırma çözünürlüğünde) piksel düzeyinde aynı olduğu anlamına gelir.
|
||||
- Fark çıktısı, giriş biçimlerinden bağımsız olarak her zaman PNG biçimindedir.
|
||||
- Her iki görüntü de karşılaştırmadan önce doğrulanır ve çözülür (HEIC, RAW, PSD, SVG desteklenir).
|
||||
- İşlemeden önce her iki görüntüde EXIF yönlendirmesi otomatik olarak uygulanır.
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
description: "Kompozit için görüntüleri konum, opaklık ve harmanlama modlarıyla katmanlayın."
|
||||
i18n_source_hash: c5d09eb13fde
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 30a96db223c7
|
||||
---
|
||||
|
||||
# Görüntü Kompozisyonu {#image-composition}
|
||||
|
||||
Yapılandırılabilir konum, opaklık ve harmanlama moduyla bir temel görüntünün üzerine bir yer paylaşım görüntüsü katmanlayın. Logoları, grafikleri kompozit etmek veya birden fazla görüntüyü birleştirmek için kullanışlıdır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/compose`
|
||||
|
||||
**İki** görüntü dosyası ve bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| x | number | Hayır | `0` | Yer paylaşımının sol üst köşeden yatay ofseti, piksel cinsinden (min 0) |
|
||||
| y | number | Hayır | `0` | Yer paylaşımının sol üst köşeden dikey ofseti, piksel cinsinden (min 0) |
|
||||
| opacity | number | Hayır | `100` | Yer paylaşımı opaklık yüzdesi (0 ile 100 arası) |
|
||||
| blendMode | string | Hayır | `"over"` | Kompozit harmanlama modu |
|
||||
|
||||
### Harmanlama Modları {#blend-modes}
|
||||
|
||||
| Değer | Açıklama |
|
||||
|-------|-------------|
|
||||
| `over` | Normal yer paylaşımı (varsayılan) |
|
||||
| `multiply` | Piksel değerlerini çarparak koyulaştırma |
|
||||
| `screen` | Tersine çevirerek, çarparak ve tekrar tersine çevirerek açma |
|
||||
| `overlay` | Temel parlaklığa göre çarpma ve ekranı birleştirir |
|
||||
| `darken` | Her katmandan daha koyu pikseli korur |
|
||||
| `lighten` | Her katmandan daha açık pikseli korur |
|
||||
| `hard-light` | Güçlü kontrast yer paylaşımı |
|
||||
| `soft-light` | İnce kontrast yer paylaşımı |
|
||||
| `difference` | Katmanlar arasındaki mutlak fark |
|
||||
| `exclusion` | Farka benzer ancak daha düşük kontrast |
|
||||
|
||||
### Dosya Alanları {#file-fields}
|
||||
|
||||
| Alan Adı | Zorunlu | Açıklama |
|
||||
|------------|----------|-------------|
|
||||
| file | Evet | Temel/arka plan görüntüsü |
|
||||
| overlay | Evet | Yer paylaşımı/ön plan görüntüsü |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/compose \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@background.jpg" \
|
||||
-F "overlay=@graphic.png" \
|
||||
-F 'settings={"x": 100, "y": 50, "opacity": 80, "blendMode": "over"}'
|
||||
```
|
||||
|
||||
Çarpma harmanlama modunu kullanma:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/compose \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F "overlay=@texture.jpg" \
|
||||
-F 'settings={"x": 0, "y": 0, "opacity": 50, "blendMode": "multiply"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/background.jpg",
|
||||
"originalSize": 3200000,
|
||||
"processedSize": 3450000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Her iki görüntü de kompozit etmeden önce doğrulanır ve çözülür (HEIC, RAW, PSD, SVG desteklenir).
|
||||
- Yer paylaşımı, `x` ve `y` tarafından belirtilen tam piksel koordinatlarına yerleştirilir. Sığdırmak için yeniden boyutlandırılmaz.
|
||||
- Opaklık 100'den azsa, harmanlamadan önce yer paylaşımına bir alfa maskesi uygulanır.
|
||||
- Yer paylaşımı, temel görüntü sınırlarının ötesine uzanabilir (kırpılır).
|
||||
- İşlemeden önce her iki görüntüde EXIF yönlendirmesi otomatik olarak uygulanır.
|
||||
- Çıktı boyutları, temel görüntü boyutlarıyla eşleşir.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Görüntü dosyası boyutunu kalite düzeyine göre veya hedef dosya boyutuna göre azaltın."
|
||||
i18n_source_hash: af4685da7e64
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: abf4d9eb2451
|
||||
---
|
||||
|
||||
# Sıkıştır {#compress}
|
||||
|
||||
Bir kalite düzeyi veya kilobayt cinsinden hedef bir dosya boyutu belirterek görüntü dosyası boyutunu azaltın. Araç, boyut hedeflerine doğru bir şekilde ulaşmak için yinelemeli ikili arama kullanır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/compress`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Hayır | `"quality"` | Sıkıştırma modu: `quality` veya `targetSize` |
|
||||
| quality | number | Hayır | `80` | Kalite düzeyi (1-100). Mod `quality` olduğunda kullanılır. |
|
||||
| targetSizeKb | number | Hayır | - | Kilobayt cinsinden hedef dosya boyutu. Mod `targetSize` olduğunda kullanılır. |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Kalite 60'a sıkıştır:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/compress \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"mode": "quality", "quality": 60}'
|
||||
```
|
||||
|
||||
200 KB hedef boyutuna sıkıştır:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/compress \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"mode": "targetSize", "targetSizeKb": 200}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 204800
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `quality` modunda, daha düşük değerler daha fazla sıkıştırma bozulmasıyla daha küçük dosyalar üretir. 80 değeri, web kullanımı için iyi bir varsayılandır.
|
||||
- `targetSize` modunda, motor hedefi aşmadan mümkün olduğunca yaklaşmak için yinelemeli sıkıştırma gerçekleştirir.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. Sıkıştırma, biçimin yerel kodlamasına uygulanır (örn. JPEG dosyaları için JPEG kalitesi, WebP dosyaları için WebP kalitesi).
|
||||
- Varsayılan kalite (80) kabul edilebilirse, `quality` parametresini tamamen atlayabilirsiniz.
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
description: "Önemli içeriği ve yüzleri korumak için düşük önem taşıyan yollar boyunca piksel ekleyen veya kaldıran dikiş oyma yeniden boyutlandırma."
|
||||
i18n_source_hash: f383b28ab62a
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e9a902a6bd97
|
||||
---
|
||||
|
||||
# İçerik Duyarlı Yeniden Boyutlandırma {#content-aware-resize}
|
||||
|
||||
En az görsel öneme sahip yollar boyunca pikselleri akıllıca kaldıran veya ekleyen, önemli içeriği koruyan ve isteğe bağlı olarak yüzleri koruyan dikiş oyma yeniden boyutlandırma.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/content-aware-resize`
|
||||
|
||||
**İşleme:** Eşzamanlı (sonucu doğrudan döndürür)
|
||||
|
||||
**Model paketi:** Temel işlem için gerekmez. Yüz koruması, etkinleştirilirse `face-detection` paketini (200-300 MB) kullanır.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görüntü dosyası (çok parçalı) |
|
||||
| width | number | Hayır | - | Piksel cinsinden hedef genişlik |
|
||||
| height | number | Hayır | - | Piksel cinsinden hedef yükseklik |
|
||||
| protectFaces | boolean | Hayır | `false` | Yüzleri algıla ve dikiş kaldırmadan koru |
|
||||
| blurRadius | number | Hayır | `4` | Enerji hesaplaması için ön işleme bulanıklık yarıçapı (0-20) |
|
||||
| sobelThreshold | number | Hayır | `2` | Sobel kenar algılama eşiği (1-20). Daha yüksek değerler algoritmayı daha agresif yapar |
|
||||
| square | boolean | Hayır | `false` | Kareye yeniden boyutlandır (daha küçük boyutu kullanır) |
|
||||
|
||||
`width`, `height` veya `square` değerlerinden en az biri belirtilmelidir.
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/content-aware-resize \
|
||||
-F "file=@landscape.jpg" \
|
||||
-F 'settings={"width":800,"protectFaces":true}'
|
||||
```
|
||||
|
||||
## Yanıt (200 OK) {#response-200-ok}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/landscape_seam.png",
|
||||
"originalSize": 450000,
|
||||
"processedSize": 380000,
|
||||
"width": 800,
|
||||
"height": 600
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu özel rota şu anda eşzamanlı bir 200 yanıtı döndürür.
|
||||
- İçerik duyarlı yeniden boyutlandırma için `caire` dikiş oyma kitaplığını kullanır.
|
||||
- Yalnızca boyutları küçültür (dikişleri kaldırır). Bir görüntüyü orijinal boyutunun ötesine genişletemez.
|
||||
- `protectFaces` seçeneği, yüz bölgelerini yüksek enerjili olarak işaretlemek için AI yüz algılamasını kullanır ve dikişlerin yüzlerden geçmesini önler.
|
||||
- `blurRadius`, enerji haritası hesaplamasından önce düzeltmeyi denetler. Daha yüksek değerler enerji haritasını daha eşit hale getirir, bu da gürültülü görüntülere yardımcı olabilir.
|
||||
- `sobelThreshold`, kenarların ne kadar agresif algılandığını etkiler. Daha düşük değerler daha ince kenarları korur.
|
||||
- Çıktı her zaman PNG biçimindedir.
|
||||
- Otomatik çözme yoluyla HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini destekler.
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
description: "AVIF, JXL ve HEIC gibi modern biçimler dahil olmak üzere görüntüleri biçimler arasında dönüştürün."
|
||||
i18n_source_hash: 562f8270e8c3
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2ff55524f83b
|
||||
---
|
||||
|
||||
# Dönüştür {#convert}
|
||||
|
||||
Görüntüleri biçimler arasında dönüştürün. HEIC, JXL, BMP, ICO, JP2, QOI ve PSD gibi özel biçimlerin yanı sıra yaygın web biçimlerini de destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/convert`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Evet | - | Hedef biçim: `jpg`, `png`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl`, `bmp`, `ico`, `jp2`, `qoi`, `psd`, `ppm`, `eps`, `tga` |
|
||||
| quality | number | Hayır | - | Çıktı kalitesi (1-100). jpg, webp, avif, heic gibi kayıplı biçimlere uygulanır. |
|
||||
|
||||
## Desteklenen Çıktı Biçimleri {#supported-output-formats}
|
||||
|
||||
| Biçim | Tür | Notlar |
|
||||
|--------|------|-------|
|
||||
| jpg | Kayıplı | JPEG, en iyi uyumluluk |
|
||||
| png | Kayıpsız | Saydamlığı destekler |
|
||||
| webp | Her ikisi | Modern web biçimi, iyi sıkıştırma |
|
||||
| avif | Kayıplı | Yeni nesil biçim, mükemmel sıkıştırma |
|
||||
| tiff | Her ikisi | Baskı/yayın iş akışları |
|
||||
| gif | Kayıpsız | 256 renkle sınırlı |
|
||||
| heic / heif | Kayıplı | Apple ekosistemi biçimi |
|
||||
| jxl | Her ikisi | JPEG XL, yeni nesil biçim |
|
||||
| bmp | Kayıpsız | Sıkıştırılmamış bit eşlem |
|
||||
| ico | Kayıpsız | Windows simge biçimi |
|
||||
| jp2 | Kayıplı | JPEG 2000 |
|
||||
| qoi | Kayıpsız | Quite OK Image biçimi |
|
||||
| psd | Katmanlı | Adobe Photoshop (ImageMagick gerektirir) |
|
||||
| ppm | Kayıpsız | Portable Pixmap (PPM/PGM/PBM) |
|
||||
| eps | Vektör | Encapsulated PostScript |
|
||||
| tga | Kayıpsız | Targa görüntü biçimi |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
WebP'ye dönüştür:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/convert \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"format": "webp", "quality": 85}'
|
||||
```
|
||||
|
||||
PNG'ye dönüştür (kayıpsız):
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/convert \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"format": "png"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.webp",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 680000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Çıktı dosya adı uzantısı, hedef biçimle eşleşecek şekilde otomatik olarak güncellenir.
|
||||
- SVG girişleri, dönüştürmeden önce 300 DPI'de rasterleştirilir.
|
||||
- PSD dönüştürme, sunucuda ImageMagick'in kurulu olmasını gerektirir.
|
||||
- BMP, EPS, ICO, JP2, JXL, PPM, QOI ve TGA, özel CLI kodlayıcıları kullanır ve Sharp işlemesini atlar.
|
||||
- HEIC/HEIF kodlaması, sistem HEIC kodlayıcı kitaplığını kullanır.
|
||||
- Giriş biçimleri geniştir: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW (CR2, NEF, ARW, vb.), PSD, SVG, BMP ve daha fazlası.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Konum ve boyutlarla bir bölge belirterek görüntüleri kırpın."
|
||||
i18n_source_hash: aab38ccd7c53
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 0cccc18a666b
|
||||
---
|
||||
|
||||
# Kırp {#crop}
|
||||
|
||||
Konum ve boyut kullanarak dikdörtgen bir bölge tanımlayarak görüntüleri kırpın. Hem piksel hem de yüzde birimlerini destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/crop`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| left | number | Evet | - | Kırpma bölgesinin X ofseti (sol kenardan) |
|
||||
| top | number | Evet | - | Kırpma bölgesinin Y ofseti (üst kenardan) |
|
||||
| width | number | Evet | - | Kırpma bölgesinin genişliği |
|
||||
| height | number | Evet | - | Kırpma bölgesinin yüksekliği |
|
||||
| unit | string | Hayır | `"px"` | Değerler için birim: `px` veya `percent` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}'
|
||||
```
|
||||
|
||||
Yüzde değerlerini kullanarak kırpma:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 1200000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Kırpma bölgesi görüntü sınırları içine sığmalıdır. Bölge görüntünün ötesine uzanırsa, istek başarısız olur.
|
||||
- `percent` birimi kullanıldığında, değerler görüntü boyutlarının yüzdelerini temsil eder (örn. `left: 10`, sol kenardan %10 anlamına gelir).
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir.
|
||||
- Kırpmadan önce EXIF yönlendirmesi otomatik olarak uygulanır, bu nedenle koordinatlar görsel olarak doğru yönlendirmeye karşılık gelir.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: "Özel gölge ve vurgu renkleriyle iki renkli düoton efekti uygulayın."
|
||||
i18n_source_hash: ab99c4f0152c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 93af611c3932
|
||||
---
|
||||
|
||||
# Düoton {#duotone}
|
||||
|
||||
Bir görüntüye iki renkli düoton efekti uygulayın. Görüntü gri tonlamaya dönüştürülür, ardından gölge rengi (koyu tonlar) ile vurgu rengi (parlak tonlar) arasında bir gradyana eşlenir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/duotone`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı ile çok parçalı form verilerini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| shadow | string | Hayır | `"#1e3a8a"` | Gölge hex rengi (koyu tonlara uygulanır) |
|
||||
| highlight | string | Hayır | `"#fbbf24"` | Vurgu hex rengi (parlak tonlara uygulanır) |
|
||||
| intensity | integer | Hayır | `100` | Efekt yoğunluğu (0-100); 0 orijinali döndürür, 100 tam düotonu uygular |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/duotone \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"shadow": "#0f172a", "highlight": "#f97316", "intensity": 80}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 1870000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girişleri işlenmeden önce otomatik olarak çözülür.
|
||||
- 100'den küçük bir `intensity`, düoton sonucunu orijinal görüntüyle harmanlar ve daha ince efektlere olanak tanır.
|
||||
- Popüler düoton kombinasyonları arasında lacivert/altın, deniz mavisi/mercan ve mor/pembe yer alır.
|
||||
@@ -0,0 +1,108 @@
|
||||
---
|
||||
description: "Görüntülerde EXIF, IPTC, GPS ve XMP meta veri alanlarını piksel yeniden kodlaması olmadan düzenleyin."
|
||||
i18n_source_hash: a37746db11c3
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 1ba065328abd
|
||||
---
|
||||
|
||||
# Meta Veri Düzenle {#edit-metadata}
|
||||
|
||||
EXIF, IPTC, GPS koordinatları, tarihler ve anahtar kelimeler dahil olmak üzere görüntü meta veri alanlarını düzenleyin. Arka planda ExifTool kullanır, bu nedenle meta veriler pikselleri yeniden kodlamadan yerinde yazılır ve tam görüntü kalitesi korunur.
|
||||
|
||||
## API Uç Noktaları {#api-endpoints}
|
||||
|
||||
### Meta Veri Düzenle {#edit-metadata-1}
|
||||
|
||||
`POST /api/v1/tools/image/edit-metadata`
|
||||
|
||||
Meta veri alanlarını görüntüye yazar ve değiştirilen dosyayı döndürür.
|
||||
|
||||
### Meta Veriyi İncele {#inspect-metadata}
|
||||
|
||||
`POST /api/v1/tools/image/edit-metadata/inspect`
|
||||
|
||||
Görüntüden tam meta veriyi ExifTool aracılığıyla JSON olarak döndürür. Görüntüyü değiştirmez.
|
||||
|
||||
## Parametreler (Düzenle) {#parameters-edit}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| title | string | Hayır | - | Görüntü başlığı (XMP/EXIF) |
|
||||
| author | string | Hayır | - | Yazar adı |
|
||||
| artist | string | Hayır | - | Sanatçı adı (EXIF Artist etiketi) |
|
||||
| copyright | string | Hayır | - | Telif hakkı bildirimi |
|
||||
| imageDescription | string | Hayır | - | Görüntü açıklaması (EXIF) |
|
||||
| software | string | Hayır | - | Yazılım etiketi |
|
||||
| dateTime | string | Hayır | - | EXIF DateTime değeri |
|
||||
| dateTimeOriginal | string | Hayır | - | EXIF DateTimeOriginal değeri |
|
||||
| setAllDates | string | Hayır | - | Tüm tarih alanlarını bir kerede ayarla |
|
||||
| dateShift | string | Hayır | - | Tüm tarihleri ofset kadar kaydır (biçim: `+HH:MM` veya `-HH:MM`) |
|
||||
| clearGps | boolean | Hayır | `false` | Tüm GPS verilerini kaldır |
|
||||
| gpsLatitude | number | Hayır | - | GPS enlemini ayarla (-90 ile 90 arası) |
|
||||
| gpsLongitude | number | Hayır | - | GPS boylamını ayarla (-180 ile 180 arası) |
|
||||
| gpsAltitude | number | Hayır | - | GPS yüksekliğini metre cinsinden ayarla |
|
||||
| keywords | string[] | Hayır | - | Eklenecek veya ayarlanacak anahtar kelimeler/etiketler |
|
||||
| keywordsMode | string | Hayır | `"add"` | Anahtar kelimelerin nasıl işleneceği: `add` (ekle) veya `set` (değiştir) |
|
||||
| fieldsToRemove | string[] | Hayır | `[]` | Kaldırılacak belirli meta veri alanı adlarının listesi |
|
||||
| iptcTitle | string | Hayır | - | IPTC Object Name |
|
||||
| iptcHeadline | string | Hayır | - | IPTC Headline |
|
||||
| iptcCity | string | Hayır | - | IPTC City |
|
||||
| iptcState | string | Hayır | - | IPTC Province/State |
|
||||
| iptcCountry | string | Hayır | - | IPTC Country |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Yazar ve telif hakkını ayarla:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"author": "Jane Smith", "copyright": "2024 Jane Smith"}'
|
||||
```
|
||||
|
||||
GPS koordinatlarını ayarla:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"gpsLatitude": 48.8566, "gpsLongitude": 2.3522, "gpsAltitude": 35}'
|
||||
```
|
||||
|
||||
GPS'i kaldır ve anahtar kelimeler ekle:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"clearGps": true, "keywords": ["landscape", "sunset"], "keywordsMode": "add"}'
|
||||
```
|
||||
|
||||
Meta veriyi incele:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata/inspect \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg"
|
||||
```
|
||||
|
||||
## Örnek Yanıt (Düzenle) {#example-response-edit}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2452000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu araç, sunucuda ExifTool'un kurulu olmasını gerektirir. Docker imajına dahildir.
|
||||
- Meta veriler yerinde yazılır, bu nedenle piksel yeniden kodlaması gerçekleşmez. Dosya boyutu değişikliği minimaldir (yalnızca meta veri baytları).
|
||||
- `dateShift` parametresi, tüm tarih alanlarını belirtilen ofset kadar kaydırır ve saat dilimi hatalarını düzeltmek için kullanışlıdır (örn. `+02:00` veya `-05:30`).
|
||||
- Hiçbir değişiklik istenmezse (tüm parametreler atlanmış veya boşsa), orijinal dosya değiştirilmeden döndürülür.
|
||||
- Desteklenen biçimler: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC/HEIF.
|
||||
- Tarayıcıda önizlenemeyen biçimler (HEIF, TIFF) için yanıt, WebP önizlemesi içeren bir `previewUrl` alanı içerir.
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
description: "GFPGAN ve CodeFormer AI modelleriyle görüntülerdeki bulanık veya düşük kaliteli yüzleri geri yükleyin ve keskinleştirin."
|
||||
i18n_source_hash: 7f9f6af8ebda
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 8d35bc621921
|
||||
---
|
||||
|
||||
# Yüz İyileştirme {#face-enhancement}
|
||||
|
||||
AI modelleri (GFPGAN/CodeFormer) kullanarak görüntülerdeki yüzleri geri yükleyin ve iyileştirin.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/enhance-faces`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` yoklaması yapın)
|
||||
|
||||
**Model paketleri:** `upscale-enhance` (5-6 GB) ve `face-detection` (200-300 MB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görüntü dosyası (çok parçalı) |
|
||||
| model | string | Hayır | `"auto"` | Kullanılacak model: `auto`, `gfpgan`, `codeformer` |
|
||||
| strength | number | Hayır | `0.8` | İyileştirme gücü (0-1). Daha yüksek değerler daha güçlü iyileştirme üretir |
|
||||
| onlyCenterFace | boolean | Hayır | `false` | Yalnızca en merkezi/belirgin yüzü iyileştir |
|
||||
| sensitivity | number | Hayır | `0.5` | Yüz algılama duyarlılığı (0-1) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/enhance-faces \
|
||||
-F "file=@portrait.jpg" \
|
||||
-F 'settings={"model":"codeformer","strength":0.7,"onlyCenterFace":false}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Enhancing faces...","percent":60}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/portrait_enhanced.png",
|
||||
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
|
||||
"originalSize": 350000,
|
||||
"processedSize": 600000,
|
||||
"facesDetected": 2,
|
||||
"faces": [
|
||||
{"x": 120, "y": 80, "w": 100, "h": 100},
|
||||
{"x": 350, "y": 90, "w": 95, "h": 95}
|
||||
],
|
||||
"model": "codeformer"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Hem `upscale-enhance` model paketini (5-6 GB) hem de `face-detection` model paketini (200-300 MB) gerektirir.
|
||||
- GFPGAN daha agresif iyileştirme üretir; CodeFormer kimliği daha iyi korur. `auto`, giriş için en iyi modeli seçer.
|
||||
- Çıktı, maksimum kalite için her zaman PNG biçimindedir.
|
||||
- Daha hızlı ön uç görüntüleme için tam çözünürlüklü çıktının yanı sıra bir WebP önizlemesi oluşturulur.
|
||||
- `strength` parametresi, iyileştirilmiş yüzü orijinaliyle harmanlar. İnce iyileştirmeler için daha düşük değerler (0.3-0.5), daha güçlü geri yükleme için daha yüksek değerler (0.7-1.0) kullanın.
|
||||
- Otomatik çözme yoluyla HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini destekler.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "AI boyama (LaMa) ile görüntülerden istenmeyen nesneleri, silinecek bölgenin bir maskesiyle yönlendirilerek kaldırın."
|
||||
i18n_source_hash: 8e2e42a5e4f9
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a7aed8658bc5
|
||||
---
|
||||
|
||||
# Nesne Silici {#object-eraser}
|
||||
|
||||
AI boyama (LaMa modeli) kullanarak görüntülerden istenmeyen nesneleri kaldırın. Bir görüntü ve silinecek bölgeyi belirten bir maske kabul eder.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/erase-object`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` yoklaması yapın)
|
||||
|
||||
**Model paketi:** `object-eraser-colorize` (1-2 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Kaynak görüntü dosyası (çok parçalı) |
|
||||
| mask | file | Evet | - | Maske görüntüsü (beyaz = silinecek alan, siyah = korunacak). `mask` alan adıyla yüklenmelidir |
|
||||
| format | string | Hayır | `"auto"` | Çıktı biçimi: `auto`, `png`, `jpg`, `jpeg`, `webp`, `tiff`, `gif`, `avif`, `heic`, `heif`, `jxl` |
|
||||
| quality | integer | Hayır | `95` | Çıktı kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/erase-object \
|
||||
-F "file=@photo.jpg" \
|
||||
-F "mask=@mask.png" \
|
||||
-F "format=png" \
|
||||
-F "quality=95"
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Inpainting...","percent":70}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/photo_erased.png",
|
||||
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
|
||||
"originalSize": 245000,
|
||||
"processedSize": 230000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `object-eraser-colorize` model paketinin kurulu olmasını gerektirir (1-2 GB).
|
||||
- Maske, kaynak görüntüyle aynı boyutlarda olmalıdır. Beyaz pikseller silinecek alanları gösterir; AI bunları makul içerikle doldurur.
|
||||
- Yüksek kaliteli nesne kaldırma için LaMa (Large Mask Inpainting) kullanır.
|
||||
- Tarayıcıda önizlenemeyen çıktı biçimleri için ana çıktının yanı sıra bir WebP önizlemesi oluşturulur.
|
||||
- Otomatik çözme yoluyla HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini destekler.
|
||||
@@ -0,0 +1,93 @@
|
||||
---
|
||||
description: "Bir kaynak görselden tüm standart favicon ve uygulama simgesi boyutlarını üretin."
|
||||
i18n_source_hash: 3a6451a94b7a
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 71f31617b96d
|
||||
---
|
||||
|
||||
# Favicon Üretici {#favicon-generator}
|
||||
|
||||
Bir kaynak görselden eksiksiz bir favicon ve uygulama simgesi dosyaları seti üretin. Tarayıcılar, Apple cihazları ve Android için gereken tüm standart boyutları, bir web manifestosu ve bir HTML parçacığıyla birlikte üretir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/favicon`
|
||||
|
||||
Bir veya daha 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 |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| background | string | Hayır | - | Arka plan hex rengi (örn. `"#ffffff"`). Ayarlandığında simge bu rengin üzerine düzleştirilir. |
|
||||
| padding | integer | Hayır | `0` | Simge içeriğinin çevresindeki dolgu yüzdesi (0 ile 40 arası) |
|
||||
| radius | integer | Hayır | `0` | Yuvarlatılmış simgeler için köşe yarıçapı yüzdesi (0 ile 50 arası) |
|
||||
| sizes | integer[] | Hayır | - | Çıktıyı belirli piksel boyutlarıyla sınırlar (örn. `[16, 32, 180]`). Tüm standart boyutları üretmek için atlayın. |
|
||||
| themeColor | string | Hayır | `"#ffffff"` | Web manifestosu için tema rengi hex değeri |
|
||||
|
||||
## Üretilen Dosyalar {#generated-files}
|
||||
|
||||
Her giriş görseli için aşağıdaki dosyalar üretilir:
|
||||
|
||||
| Dosya | Boyut | Amaç |
|
||||
|------|------|---------|
|
||||
| `favicon-16x16.png` | 16x16 | Tarayıcı sekmesi simgesi |
|
||||
| `favicon-32x32.png` | 32x32 | Tarayıcı sekmesi simgesi (HiDPI) |
|
||||
| `favicon-48x48.png` | 48x48 | Masaüstü kısayolu |
|
||||
| `apple-touch-icon.png` | 180x180 | iOS ana ekranı |
|
||||
| `android-chrome-192x192.png` | 192x192 | Android ana ekranı |
|
||||
| `android-chrome-512x512.png` | 512x512 | Android açılış ekranı |
|
||||
| `favicon.ico` | 32x32 | Eski ICO biçimi |
|
||||
| `manifest.json` | - | Simge referanslarını içeren web uygulaması manifestosu |
|
||||
| `favicon-snippet.html` | - | Kullanıma hazır HTML link etiketleri |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Yuvarlatılmış köşeler ve dolguya sahip tek kaynak görsel:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/favicon \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@logo.png" \
|
||||
-F 'settings={"padding": 10, "radius": 20, "themeColor": "#0a0a0a"}'
|
||||
```
|
||||
|
||||
Birden fazla kaynak görsel (her biri bir alt klasörde kendi setini alır):
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/favicon \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@logo-light.png" \
|
||||
-F "file=@logo-dark.png"
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
Yanıt, doğrudan akıtılan bir ZIP dosyasıdır. Yanıt başlıkları şunlardır:
|
||||
|
||||
```
|
||||
Content-Type: application/zip
|
||||
Content-Disposition: attachment; filename="favicons-a1b2c3d4.zip"
|
||||
```
|
||||
|
||||
## Dahil Edilen HTML Parçacığı {#html-snippet-included}
|
||||
|
||||
ZIP, HTML `<head>` bölümünüze yapıştırabileceğiniz bir `favicon-snippet.html` dosyası içerir:
|
||||
|
||||
```html
|
||||
<!-- Favicons -->
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Kaynak görseller `cover` sığdırma modu kullanılarak yeniden boyutlandırılır; yani her kare boyutu doldurmak için kırpılır. En iyi sonuç için kare bir kaynak görsel kullanın.
|
||||
- Birden fazla dosya yüklendiğinde, her biri ZIP içinde kendi alt klasörünü alır (kaynak dosyaya göre adlandırılır).
|
||||
- Tek dosya yüklemesinde, tüm çıktılar alt klasör olmadan ZIP kökünde bulunur.
|
||||
- Doğrulama veya çözümlemede başarısız olan dosyalar atlanır ve sorunları açıklayan bir `skipped-files.txt` ZIP'e dahil edilir.
|
||||
- Desteklenen giriş biçimleri: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, SVG, RAW, PSD ve daha fazlası.
|
||||
- EXIF yönlendirmesi yeniden boyutlandırmadan önce otomatik olarak uygulanır.
|
||||
@@ -0,0 +1,115 @@
|
||||
---
|
||||
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).
|
||||
@@ -0,0 +1,147 @@
|
||||
---
|
||||
description: "Animasyonlu GIF'leri tek bir araçta yeniden boyutlandırın, optimize edin, hızını değiştirin, tersine çevirin, döndürün ve karelerini çıkarın."
|
||||
i18n_source_hash: 5e525e80db92
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 6e3b278b30bf
|
||||
---
|
||||
|
||||
# GIF Araçları {#gif-tools}
|
||||
|
||||
Animasyonlu GIF'leri yeniden boyutlandırın, optimize edin, hızını değiştirin, tersine çevirin, karelerini çıkarın ve döndürün. Tek bir araçta birden fazla işlem modu sunar.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/gif-tools`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
### Ortak Parametreler {#common-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Hayır | `"resize"` | İşlem modu: `resize`, `optimize`, `speed`, `reverse`, `extract`, `rotate` |
|
||||
| loop | number | Hayır | 0 | Çıktı GIF'i için döngü sayısı (0 = sonsuz, 1-100 = sonlu döngüler) |
|
||||
|
||||
### Yeniden Boyutlandırma Modu Parametreleri {#resize-mode-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| width | integer | Hayır | - | Piksel cinsinden hedef genişlik (1 ile 16384 arası) |
|
||||
| height | integer | Hayır | - | Piksel cinsinden hedef yükseklik (1 ile 16384 arası) |
|
||||
| percentage | number | Hayır | - | Yüzdeye göre ölçeklendirme (1 ile 500 arası). Ayarlanırsa width/height değerlerini geçersiz kılar. |
|
||||
|
||||
### Optimizasyon Modu Parametreleri {#optimize-mode-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| colors | number | Hayır | 256 | Palette bulunan maksimum renk sayısı (2 ile 256 arası) |
|
||||
| dither | number | Hayır | 1.0 | Titreme (dithering) gücü (0 ile 1 arası; 0 titremeyi devre dışı bırakır) |
|
||||
| effort | number | Hayır | 7 | Optimizasyon çaba düzeyi (1 ile 10 arası; daha yüksek = daha yavaş ama daha küçük) |
|
||||
|
||||
### Hız Modu Parametreleri {#speed-mode-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| speedFactor | number | Hayır | 1.0 | Hız çarpanı (0.1 ile 10 arası). 1'den büyük değerler hızlandırır, 1'den küçük değerler yavaşlatır. |
|
||||
|
||||
### Çıkarma Modu Parametreleri {#extract-mode-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| extractMode | string | Hayır | `"single"` | Çıkarma modu: `single`, `range`, `all` |
|
||||
| frameNumber | number | Hayır | 0 | `single` modunda çıkarılacak kare dizini (0 tabanlı) |
|
||||
| frameStart | number | Hayır | 0 | `range` modu için başlangıç kare dizini (0 tabanlı) |
|
||||
| frameEnd | number | Hayır | - | `range` modu için bitiş kare dizini (0 tabanlı, dahil) |
|
||||
| extractFormat | string | Hayır | `"png"` | Çıkarılan kareler için biçim: `png`, `webp` |
|
||||
|
||||
### Döndürme Modu Parametreleri {#rotate-mode-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| angle | number | Hayır | - | Döndürme açısı: `90`, `180` veya `270` derece |
|
||||
| flipH | boolean | Hayır | `false` | Yatay olarak çevir |
|
||||
| flipV | boolean | Hayır | `false` | Dikey olarak çevir |
|
||||
|
||||
## Örnek İstekler {#example-requests}
|
||||
|
||||
### Yeniden Boyutlandırma {#resize}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
|
||||
-F "file=@animation.gif" \
|
||||
-F 'settings={"mode":"resize","percentage":50}'
|
||||
```
|
||||
|
||||
### Optimizasyon {#optimize}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
|
||||
-F "file=@large.gif" \
|
||||
-F 'settings={"mode":"optimize","colors":128,"effort":9}'
|
||||
```
|
||||
|
||||
### Hızlandırma {#speed-up}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
|
||||
-F "file=@animation.gif" \
|
||||
-F 'settings={"mode":"speed","speedFactor":2.0}'
|
||||
```
|
||||
|
||||
### Tek Kare Çıkarma {#extract-single-frame}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
|
||||
-F "file=@animation.gif" \
|
||||
-F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/animation.gif",
|
||||
"originalSize": 2345678,
|
||||
"processedSize": 1234567
|
||||
}
|
||||
```
|
||||
|
||||
## Bilgi Alt Rotası {#info-sub-route}
|
||||
|
||||
`POST /api/v1/tools/image/gif-tools/info`
|
||||
|
||||
Bir animasyonlu GIF'i işlemeden onun hakkında meta veri döndürür.
|
||||
|
||||
### Bilgi İsteği {#info-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools/info \
|
||||
-F "file=@animation.gif"
|
||||
```
|
||||
|
||||
### Bilgi Yanıtı {#info-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"width": 480,
|
||||
"height": 320,
|
||||
"pages": 24,
|
||||
"delay": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
|
||||
"loop": 0,
|
||||
"fileSize": 2345678,
|
||||
"duration": 2400
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Ana işleme uç noktası için standart `createToolRoute` fabrikasını kullanır.
|
||||
- Bilgi uç noktası yalnızca bir dosya yüklemesi gerektirir (ayara gerek yoktur).
|
||||
- `resize` modunda, `percentage` sağlanırsa `width`/`height` üzerinde önceliğe sahip olur. Yeniden boyutlandırma, en boy oranını korumak için `fit: inside` kullanır.
|
||||
- `speed` modunda, kare gecikmeleri hız faktörüne bölünür. Kare başına minimum gecikme 20ms'dir (GIF spesifikasyon sınırlaması).
|
||||
- `reverse` modunda, tersine çevirirken hızı aynı anda ayarlamak için `speedFactor` parametresi de kullanılabilir.
|
||||
- `range` veya `all` ile `extract` modunda çıktı, tekil kareleri içeren bir ZIP dosyasıdır.
|
||||
- `rotate` modunda, her kare ayrı ayrı işlenir ve bir animasyona yeniden birleştirilir.
|
||||
- `loop` parametresi, çıktı GIF'inin kaç kez döngü yapacağını kontrol eder. Sonsuz döngü için 0 kullanın.
|
||||
- Bilgi yanıtındaki `duration` alanı, milisaniye cinsinden toplam animasyon süresidir.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: "Animasyonlu GIF'i WebP'ye ve tersine dönüştürün, tüm kareleri koruyun."
|
||||
i18n_source_hash: 20946e5001cb
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 11464ec15f94
|
||||
---
|
||||
|
||||
# GIF/WebP Dönüştürücü {#gif-webp-converter}
|
||||
|
||||
Animasyonlu GIF dosyalarını WebP'ye ve tersine dönüştürün; tüm kareleri ve animasyon zamanlamasını koruyun. WebP animasyonları genellikle eşdeğer GIF'lerden %25-35 daha küçüktür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/gif-webp`
|
||||
|
||||
Bir GIF veya WebP dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| quality | integer | Hayır | `80` | WebP kodlaması için çıktı kalitesi (1-100) |
|
||||
| lossless | boolean | Hayır | `false` | Kayıpsız WebP sıkıştırması kullan |
|
||||
| resizePercent | integer | Hayır | `100` | Çıktıyı yüzdeye göre ölçeklendir (10-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/gif-webp \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@animation.gif" \
|
||||
-F 'settings={"quality": 85, "resizePercent": 50}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/animation.webp",
|
||||
"originalSize": 3500000,
|
||||
"processedSize": 2200000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Yalnızca `.gif` ve `.webp` dosyaları kabul edilir. Diğer görsel biçimleri bu araç tarafından desteklenmez.
|
||||
- Dönüştürme yönü otomatiktir: GIF girişi WebP çıktısı üretir, WebP girişi ise GIF çıktısı üretir.
|
||||
- `quality` ve `lossless` seçenekleri yalnızca WebP'ye kodlarken geçerlidir. GIF'e dönüştürürken çıktı, standart GIF paletini kullanır.
|
||||
- Büyük animasyonların boyutlarını (ve dosya boyutunu) azaltmak için `resizePercent` kullanın.
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
description: "Bir görselden kanal başına istatistiklerle birlikte bir RGB histogram grafiği üretin."
|
||||
i18n_source_hash: 57aa610206a5
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: ec14705067ea
|
||||
---
|
||||
|
||||
# Histogram {#histogram}
|
||||
|
||||
Bir görselden bir RGB histogram grafiği üretin. Yanıt JSON'unda kanal başına istatistikler ve ham 256 bölmeli histogram verileriyle birlikte bir PNG histogram görseli döndürür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/histogram`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| scale | string | Hayır | `"linear"` | Y ekseni ölçeği: `linear` veya `log` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/histogram \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"scale": "linear"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/histogram.png",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 12000,
|
||||
"bins": {
|
||||
"r": [0, 12, 45, "... (256 values)"],
|
||||
"g": [0, 8, 38, "... (256 values)"],
|
||||
"b": [2, 15, 52, "... (256 values)"],
|
||||
"lum": [0, 10, 40, "... (256 values)"]
|
||||
},
|
||||
"stats": {
|
||||
"r": { "mean": 128, "median": 132, "stdev": 48.5 },
|
||||
"g": { "mean": 119, "median": 121, "stdev": 44.2 },
|
||||
"b": { "mean": 105, "median": 108, "stdev": 51.3 },
|
||||
"lum": { "mean": 118, "median": 120, "stdev": 45.1 }
|
||||
},
|
||||
"mean": { "r": 128, "g": 119, "b": 105 },
|
||||
"max": { "r": 4200, "g": 3800, "b": 4100 }
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `downloadUrl`, R, G, B ve parlaklık dağılımlarını gösteren, işlenmiş bir PNG histogram grafiğine işaret eder.
|
||||
- `bins`, her kanal (kırmızı, yeşil, mavi, parlaklık) için özel görselleştirmeler oluşturmaya uygun ham 256 değerli diziler içerir.
|
||||
- `stats`, kanal başına ortalama, medyan ve standart sapma sağlar.
|
||||
- `mean` ve `max`, geriye dönük uyumlu kısaltma alanlarıdır.
|
||||
- Histogram birkaç zirveyle domine edildiğinde ve alt bölmelerdeki ayrıntıyı görmek istediğinizde `log` ölçeğini kullanın.
|
||||
- HEIC, RAW, PSD ve SVG girişleri analizden önce otomatik olarak çözümlenir.
|
||||
@@ -0,0 +1,81 @@
|
||||
---
|
||||
description: "Web sayfalarını veya HTML parçacıklarını cihaz emülasyonuyla yüksek kaliteli görseller olarak yakalayın."
|
||||
i18n_source_hash: 1e49d070ea2e
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2cb79b9eabb8
|
||||
---
|
||||
|
||||
# HTML'den Görsele {#html-to-image}
|
||||
|
||||
Bir web sayfası URL'sini veya ham HTML içeriğini bir ekran görüntüsü görseli olarak yakalayın. Cihaz emülasyonunu (masaüstü, tablet, mobil), tam sayfa yakalamayı ve birden fazla çıktı biçimini destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/html-to-image`
|
||||
|
||||
Bir **JSON gövdesi** kabul eder (multipart değil). Dosya yüklemesi gerekmez.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| url | string | Koşullu | - | Yakalanacak URL (geçerli bir URL olmalıdır) |
|
||||
| html | string | Koşullu | - | İşlenecek ham HTML içeriği (1 ile 5.000.000 karakter arası) |
|
||||
| format | string | Hayır | `"png"` | Çıktı biçimi: `jpg`, `png`, `webp` |
|
||||
| quality | number | Hayır | `90` | Kayıplı biçimler için çıktı kalitesi (1 ile 100 arası) |
|
||||
| fullPage | boolean | Hayır | `false` | Yalnızca görünüm alanını değil, kaydırılabilir tüm sayfayı yakala |
|
||||
| devicePreset | string | Hayır | `"desktop"` | Cihaz emülasyonu: `desktop`, `tablet`, `mobile`, `custom` |
|
||||
| viewportWidth | number | Hayır | `1280` | Piksel cinsinden özel görünüm alanı genişliği (320 ile 3840 arası, devicePreset `custom` olduğunda kullanılır) |
|
||||
| viewportHeight | number | Hayır | `720` | Piksel cinsinden özel görünüm alanı yüksekliği (320 ile 2160 arası, devicePreset `custom` olduğunda kullanılır) |
|
||||
|
||||
`url` veya `html` değerinden biri sağlanmalıdır, ancak ikisi birden değil.
|
||||
|
||||
### Cihaz Ön Ayarları {#device-presets}
|
||||
|
||||
| Ön Ayar | Genişlik | Yükseklik | Mobil UA |
|
||||
|--------|-------|--------|-----------|
|
||||
| `desktop` | 1280 | 720 | Hayır |
|
||||
| `tablet` | 768 | 1024 | Hayır |
|
||||
| `mobile` | 375 | 812 | Evet |
|
||||
| `custom` | (kullanıcı tarafından belirtilir) | (kullanıcı tarafından belirtilir) | Hayır |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Bir web sayfası yakalama:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}'
|
||||
```
|
||||
|
||||
HTML içeriği işleme:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/screenshot.png",
|
||||
"originalSize": 0,
|
||||
"processedSize": 145000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Sunucuda Chromium'un kurulu olmasını gerektirir. Tarayıcı hizmeti mevcut değilse HTTP 503 döndürür.
|
||||
- URL'ler SSRF saldırılarına karşı doğrulanır (özel/dahili ağ adresleri engellenir).
|
||||
- Bu uç nokta saatte 120 istekle sınırlıdır.
|
||||
- Bu araç URL'lerden/HTML'den görsel ürettiği için `originalSize` her zaman 0'dır.
|
||||
- Çıktı dosya adı `screenshot.<format>` şeklindedir.
|
||||
- Sayfanın yüklenmesi çok uzun sürerse istek HTTP 504 (ağ geçidi zaman aşımı) döndürür.
|
||||
- Tarayıcı hizmeti tekrar tekrar çökerse geçici olarak devre dışı bırakılır ve `BROWSER_CRASHED` koduyla HTTP 503 döndürür.
|
||||
@@ -0,0 +1,99 @@
|
||||
---
|
||||
description: "Bir görseli analiz eden ve pozlamayı, kontrastı, beyaz dengesini, doygunluğu ve keskinliği düzelten tek tıkla otomatik geliştirme."
|
||||
i18n_source_hash: 42b6ab956f91
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 882095febc20
|
||||
---
|
||||
|
||||
# Görsel Geliştirme {#image-enhancement}
|
||||
|
||||
Akıllı analizle tek tıkla otomatik iyileştirme. Görseli analiz eder ve pozlama, kontrast, beyaz dengesi, doygunluk, keskinlik ve gürültü azaltma düzeltmelerini uygular.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/image-enhancement`
|
||||
|
||||
**İşleme:** Eşzamanlı (`createToolRoute` fabrikasını kullanır, sonucu doğrudan döndürür)
|
||||
|
||||
**Model paketi:** Temel geliştirme için hiçbiri gerekmez. `upscale-enhance` paketi (5-6 GB) yalnızca `deepEnhance` etkinleştirildiğinde kullanılır (SCUNet aracılığıyla yapay zeka gürültü giderme için).
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (multipart) |
|
||||
| mode | string | Hayır | `"auto"` | Geliştirme modu: `auto`, `portrait`, `landscape`, `low-light`, `food`, `document` |
|
||||
| intensity | number | Hayır | `50` | Genel geliştirme yoğunluğu (0-100) |
|
||||
| corrections | object | Hayır | tümü `true` | Uygulanacak seçmeli düzeltmeler (aşağıya bakın) |
|
||||
| deepEnhance | boolean | Hayır | `false` | Yapay zeka destekli gürültü gidermeyi etkinleştir (`noise-removal` aracının kurulu olmasını gerektirir) |
|
||||
|
||||
### Düzeltmeler Nesnesi {#corrections-object}
|
||||
|
||||
| Alan | Tür | Varsayılan | Açıklama |
|
||||
|-------|------|---------|-------------|
|
||||
| exposure | boolean | `true` | Pozlamayı otomatik düzelt |
|
||||
| contrast | boolean | `true` | Kontrastı otomatik düzelt |
|
||||
| whiteBalance | boolean | `true` | Beyaz dengesini otomatik düzelt |
|
||||
| saturation | boolean | `true` | Doygunluğu otomatik düzelt |
|
||||
| sharpness | boolean | `true` | Otomatik keskinleştir |
|
||||
| denoise | boolean | `true` | Hafif gürültü giderme |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-enhancement \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"mode":"portrait","intensity":70,"corrections":{"exposure":true,"contrast":true,"sharpness":false}}'
|
||||
```
|
||||
|
||||
## Yanıt (200 OK) {#response-200-ok}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/photo.jpg",
|
||||
"originalSize": 300000,
|
||||
"processedSize": 310000
|
||||
}
|
||||
```
|
||||
|
||||
## Analiz Uç Noktası {#analyze-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/image-enhancement/analyze`
|
||||
|
||||
Bir görseli analiz eder ve düzeltmeleri uygulamadan düzeltme önerileri döndürür.
|
||||
|
||||
### Parametreler {#parameters-1}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Açıklama |
|
||||
|-----------|------|----------|-------------|
|
||||
| file | file | Evet | Görsel dosyası (multipart) |
|
||||
|
||||
### Örnek İstek {#example-request-1}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-enhancement/analyze \
|
||||
-F "file=@photo.jpg"
|
||||
```
|
||||
|
||||
### Yanıt (200 OK) {#response-200-ok-1}
|
||||
|
||||
```json
|
||||
{
|
||||
"corrections": {
|
||||
"exposure": { "value": 0.3, "direction": "brighten" },
|
||||
"contrast": { "value": 0.2, "direction": "increase" },
|
||||
"whiteBalance": { "value": 200, "direction": "warmer" },
|
||||
"saturation": { "value": 0.1, "direction": "increase" },
|
||||
"sharpness": { "value": 0.4, "direction": "sharpen" }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu araç eşzamanlı `createToolRoute` fabrikasını kullanır, bu nedenle standart bir yanıt döndürür (202 async değil).
|
||||
- `mode` parametresi, düzeltmelerin nasıl ağırlıklandırılacağını ayarlar (örn. portre modu ten tonlarına daha yumuşak davranır, manzara modu doygunluğu artırır).
|
||||
- `deepEnhance` etkinleştirildiğinde ve `noise-removal` aracı (SCUNet) kurulu olduğunda, standart düzeltmelerden sonra ek bir yapay zeka gürültü giderme geçişi uygulanır.
|
||||
- Analiz uç noktası, uygulanmadan önce hangi düzeltmelerin uygulanacağını önizlemek için kullanışlıdır.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini otomatik çözümleme yoluyla destekler.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Bir görseli düz renk, saydam veya bulanık arka planla hedef en boy oranına dolgulayın."
|
||||
i18n_source_hash: 796122da3dae
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e270874ce92a
|
||||
---
|
||||
|
||||
# Görsel Dolgusu {#image-pad}
|
||||
|
||||
Bir görselin çevresine düz renk, saydam veya bulanık bir arka plan ekleyerek onu hedef en boy oranına dolgulayın. Görselleri kırpmadan sosyal medya veya baskı için sabit en boy oranlarına sığdırmak için kullanışlıdır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/image-pad`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| target | string | Hayır | `"1:1"` | Hedef en boy oranı: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` veya `custom` |
|
||||
| ratioW | integer | Hayır | `1` | Özel oran genişliği (1-100, target `custom` olduğunda kullanılır) |
|
||||
| ratioH | integer | Hayır | `1` | Özel oran yüksekliği (1-100, target `custom` olduğunda kullanılır) |
|
||||
| background | string | Hayır | `"color"` | Arka plan modu: `color`, `transparent` veya `blur` |
|
||||
| color | string | Hayır | `"#ffffff"` | Arka plan hex rengi (background `color` olduğunda) |
|
||||
| padding | integer | Hayır | `0` | Tuval yüzdesi olarak ekstra dolgu (0-50) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-pad \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"target": "16:9", "background": "blur", "padding": 5}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 3100000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `blur` arka plan modu, dolgu doldurması olarak orijinal görselin bulanık bir kopyasını oluşturarak görsel açıdan tutarlı bir sonuç üretir.
|
||||
- `transparent` arka plan kullanılırken, alfayı korumak için çıktı PNG'ye dönüştürülür.
|
||||
- Saydamlık söz konusu olmadıkça çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girişleri işlemeden önce otomatik olarak çözümlenir.
|
||||
- Rastgele en boy oranları için `target` değerini `custom` olarak ayarlayın ve `ratioW` ile `ratioH` değerlerini sağlayın (örn. 3:2 için `ratioW: 3, ratioH: 2`).
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
description: "HTML, CSS ve daha fazlasına gömmek için görselleri base64 veri URI'lerine dönüştürün."
|
||||
i18n_source_hash: ba4b8f3b4ece
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 380e67cfd1d3
|
||||
---
|
||||
|
||||
# Görselden Base64'e {#image-to-base64}
|
||||
|
||||
Bir veya daha fazla görseli base64 kodlu dizelere ve veri URI'lerine dönüştürün. İsteğe bağlı biçim dönüştürme, kalite kontrolü ve yeniden boyutlandırmayı destekler. Görselleri doğrudan HTML, CSS, JSON veya e-posta şablonlarına gömmek için kullanışlıdır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/image-to-base64`
|
||||
|
||||
Bir veya daha 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 |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| outputFormat | string | Hayır | `"original"` | Kodlamadan önce dönüştür: `original`, `jpeg`, `png`, `webp`, `avif`, `jxl` |
|
||||
| quality | number | Hayır | `80` | Kayıplı biçimler için çıktı kalitesi (1 ile 100 arası) |
|
||||
| maxWidth | number | Hayır | `0` | Piksel cinsinden maksimum genişlik (0 = yeniden boyutlandırma yok, büyütmez) |
|
||||
| maxHeight | number | Hayır | `0` | Piksel cinsinden maksimum yükseklik (0 = yeniden boyutlandırma yok, büyütmez) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@icon.png" \
|
||||
-F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'
|
||||
```
|
||||
|
||||
Birden fazla dosya:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@icon1.png" \
|
||||
-F "file=@icon2.png" \
|
||||
-F "file=@icon3.png" \
|
||||
-F 'settings={"outputFormat": "original"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"results": [
|
||||
{
|
||||
"filename": "icon.png",
|
||||
"mimeType": "image/webp",
|
||||
"width": 200,
|
||||
"height": 200,
|
||||
"originalSize": 45000,
|
||||
"encodedSize": 28800,
|
||||
"overheadPercent": -36.0,
|
||||
"base64": "UklGRlYAAABXRUJQ...",
|
||||
"dataUri": "data:image/webp;base64,UklGRlYAAABXRUJQ..."
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
}
|
||||
```
|
||||
|
||||
## Yanıt Alanları {#response-fields}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| results | array | Başarıyla dönüştürülen görseller |
|
||||
| errors | array | İşlenemeyen görseller (dosya adı ve hata mesajıyla birlikte) |
|
||||
|
||||
### Sonuç Nesnesi {#result-object}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| filename | string | Orijinal dosya adı |
|
||||
| mimeType | string | Kodlanmış çıktının MIME türü |
|
||||
| width | number | Piksel cinsinden nihai genişlik (herhangi bir yeniden boyutlandırma sonrası) |
|
||||
| height | number | Piksel cinsinden nihai yükseklik (herhangi bir yeniden boyutlandırma sonrası) |
|
||||
| originalSize | number | Bayt cinsinden orijinal dosya boyutu |
|
||||
| encodedSize | number | Bayt cinsinden base64 dizesinin boyutu |
|
||||
| overheadPercent | number | Orijinale kıyasla yüzde boyut farkı (pozitif = daha büyük, negatif = daha küçük) |
|
||||
| base64 | string | Ham base64 kodlu görsel verisi |
|
||||
| dataUri | string | `src` özniteliklerinde kullanıma hazır tam veri URI'si |
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Base64 kodlama tipik olarak ikili dosyaya kıyasla boyutu yaklaşık %33 artırır. `overheadPercent` alanı gerçek farkı gösterir.
|
||||
- `outputFormat` değeri `"original"` olduğunda, HEIC/HEIF dosyaları JPEG'e dönüştürülür (tarayıcılar HEIC'i veri URI'lerinde gösteremediği için).
|
||||
- `maxWidth` ve `maxHeight` seçenekleri, `withoutEnlargement` ile `fit: inside` kullanarak yeniden boyutlandırır; bu nedenle belirtilen boyutlardan küçük görseller büyütülmez.
|
||||
- Tek bir istekte birden fazla dosya işlenebilir. Her dosya bağımsız olarak işlenir ve başarısızlıklar diğer dosyaların başarılı olmasını engellemez.
|
||||
- SVG dosyaları, yeniden kodlanmadan `image/svg+xml` olarak aktarılır (bir biçim dönüştürmesi istenmediği sürece).
|
||||
- Bu, salt okunur bir uç noktadır. İndirilebilir bir dosya veya bir `jobId` üretmez. Base64 verisi doğrudan yanıt gövdesinde döndürülür.
|
||||
@@ -0,0 +1,119 @@
|
||||
---
|
||||
description: "Bir veya daha fazla görseli sayfa boyutu, yönlendirme ve hedef dosya boyutu seçenekleriyle bir PDF belgesinde birleştirin."
|
||||
i18n_source_hash: f659c7e7f56b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 449b1e21adb2
|
||||
---
|
||||
|
||||
# Görselden PDF'e {#image-to-pdf}
|
||||
|
||||
Bir veya daha fazla görseli bir PDF belgesinde birleştirin. Birden fazla sayfa boyutunu, yönlendirmeyi, kenar boşluklarını ve kalite ayarı yoluyla isteğe bağlı dosya boyutu hedeflemeyi destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/image-to-pdf`
|
||||
|
||||
Bir veya daha fazla görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| pageSize | string | Hayır | `"A4"` | Sayfa boyutu: `A4`, `Letter`, `A3`, `A5` |
|
||||
| orientation | string | Hayır | `"portrait"` | Sayfa yönlendirmesi: `portrait` veya `landscape` |
|
||||
| margin | number | Hayır | `20` | Punto cinsinden sayfa kenar boşluğu (0-500) |
|
||||
| targetSize | object | Hayır | - | Hedef dosya boyutu kısıtlaması (aşağıya bakın) |
|
||||
| collate | boolean | Hayır | `true` | Tüm görselleri tek bir PDF'te birleştir. `false` ise görsel başına bir PDF oluşturur. |
|
||||
|
||||
### Hedef Boyut Nesnesi {#target-size-object}
|
||||
|
||||
| Alan | Tür | Zorunlu | Açıklama |
|
||||
|-------|------|----------|-------------|
|
||||
| value | number | Evet | Hedef boyut değeri |
|
||||
| unit | string | Evet | Birim: `KB` veya `MB` |
|
||||
|
||||
Minimum hedef boyut 50 KB'dir.
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Temel çok görselli PDF:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@page1.jpg" \
|
||||
-F "file=@page2.jpg" \
|
||||
-F "file=@page3.jpg" \
|
||||
-F 'settings={"pageSize": "A4", "orientation": "portrait", "margin": 20}'
|
||||
```
|
||||
|
||||
Dosya boyutu hedefiyle:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@scan1.jpg" \
|
||||
-F "file=@scan2.jpg" \
|
||||
-F 'settings={"pageSize": "Letter", "targetSize": {"value": 2, "unit": "MB"}}'
|
||||
```
|
||||
|
||||
Görsel başına bir PDF:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo1.jpg" \
|
||||
-F "file=@photo2.jpg" \
|
||||
-F 'settings={"collate": false}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt (Harmanlanmış) {#example-response-collated}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.pdf",
|
||||
"originalSize": 5000000,
|
||||
"processedSize": 1200000,
|
||||
"pages": 3
|
||||
}
|
||||
```
|
||||
|
||||
## Örnek Yanıt (Harmanlanmamış) {#example-response-non-collated}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.zip",
|
||||
"originalSize": 5000000,
|
||||
"processedSize": 2400000,
|
||||
"pages": 2,
|
||||
"collated": false
|
||||
}
|
||||
```
|
||||
|
||||
## Örnek Yanıt (Hedef Boyutla) {#example-response-with-target-size}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.pdf",
|
||||
"originalSize": 10000000,
|
||||
"processedSize": 2000000,
|
||||
"pages": 5,
|
||||
"compression": {
|
||||
"targetRequested": 2097152,
|
||||
"targetMet": true,
|
||||
"jpegQuality": 72
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Görseller sayfada ortalanır ve en boy oranı korunurken kenar boşluklarına sığacak şekilde ölçeklendirilir. Görseller asla büyütülmez.
|
||||
- `collate` değeri `false` olduğunda, her görsel ayrı bir PDF dosyası olur ve indirme, tüm PDF'leri içeren bir ZIP arşividir.
|
||||
- Hedef boyut özelliği, bütçeye sığan en iyi kaliteyi bulmak için JPEG kalite düzeyleri (10-95) üzerinde yinelemeli ikili arama kullanır.
|
||||
- Saydam görseller, PDF'e gömülmeden önce beyaza düzleştirilir.
|
||||
- Desteklenen giriş biçimleri: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW, PSD, SVG ve daha fazlası.
|
||||
- EXIF yönlendirmesi gömülmeden önce otomatik olarak uygulanır.
|
||||
@@ -0,0 +1,92 @@
|
||||
---
|
||||
description: "Ayrıntılı görsel meta verilerini, özelliklerini ve kanal başına histogram istatistiklerini görüntüleyin."
|
||||
i18n_source_hash: 8a0f7a0b0153
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 3100e52f0206
|
||||
---
|
||||
|
||||
# Görsel Bilgisi {#image-info}
|
||||
|
||||
Boyutlar, biçim, renk uzayı, EXIF/ICC/XMP varlığı ve kanal başına histogram istatistikleri dahil kapsamlı görsel meta verilerini döndüren salt okunur analiz aracı. İşlenmiş bir çıktı dosyası üretmez.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/info`
|
||||
|
||||
Bir görsel dosyası içeren multipart form verisini kabul eder. Ayar alanı gerekmez.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
Bu aracın yapılandırılabilir parametresi yoktur. Sadece görsel dosyasını yükleyin.
|
||||
|
||||
| Alan | Tür | Zorunlu | Açıklama |
|
||||
|-------|------|----------|-------------|
|
||||
| file | file | Evet | Analiz edilecek görsel |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/info \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg"
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"filename": "photo.jpg",
|
||||
"fileSize": 2450000,
|
||||
"width": 4032,
|
||||
"height": 3024,
|
||||
"format": "jpeg",
|
||||
"channels": 3,
|
||||
"hasAlpha": false,
|
||||
"colorSpace": "srgb",
|
||||
"density": 72,
|
||||
"isProgressive": false,
|
||||
"orientation": 1,
|
||||
"hasProfile": true,
|
||||
"hasExif": true,
|
||||
"hasIcc": true,
|
||||
"hasXmp": false,
|
||||
"bitDepth": "8",
|
||||
"pages": 1,
|
||||
"histogram": [
|
||||
{ "channel": "red", "min": 0, "max": 255, "mean": 128.45, "stdev": 52.31 },
|
||||
{ "channel": "green", "min": 2, "max": 253, "mean": 115.22, "stdev": 48.76 },
|
||||
{ "channel": "blue", "min": 0, "max": 250, "mean": 102.89, "stdev": 55.14 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Yanıt Alanları {#response-fields}
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| filename | string | Temizlenmiş dosya adı |
|
||||
| fileSize | number | Bayt cinsinden dosya boyutu |
|
||||
| width | number | Piksel cinsinden görsel genişliği |
|
||||
| height | number | Piksel cinsinden görsel yüksekliği |
|
||||
| format | string | Algılanan biçim (jpeg, png, webp vb.) |
|
||||
| channels | number | Renk kanallarının sayısı |
|
||||
| hasAlpha | boolean | Görselin bir alfa kanalı olup olmadığı |
|
||||
| colorSpace | string | Renk uzayı (srgb, cmyk vb.) |
|
||||
| density | number veya null | DPI/PPI çözünürlüğü |
|
||||
| isProgressive | boolean | JPEG'in progresif kodlama kullanıp kullanmadığı |
|
||||
| orientation | number veya null | EXIF yönlendirme değeri (1-8) |
|
||||
| hasProfile | boolean | Gömülü bir ICC profilinin olup olmadığı |
|
||||
| hasExif | boolean | EXIF meta verisinin mevcut olup olmadığı |
|
||||
| hasIcc | boolean | Bir ICC renk profilinin mevcut olup olmadığı |
|
||||
| hasXmp | boolean | XMP meta verisinin mevcut olup olmadığı |
|
||||
| bitDepth | string veya null | Örnek başına bit |
|
||||
| pages | number | Sayfa sayısı (TIFF, GIF gibi çok sayfalı biçimler için) |
|
||||
| histogram | array | Kanal başına istatistikler (min, maks, ortalama, standart sapma) |
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu, salt okunur bir uç noktadır. İndirilebilir bir çıktı dosyası veya bir `jobId` üretmez.
|
||||
- RAW biçimli görseller (DNG, CR2, NEF, ARW vb.) için, Sharp'ın doğrudan okuyamadığı gerçek sensör boyutlarını ve meta veri bayraklarını çıkarmak amacıyla ExifTool kullanılır.
|
||||
- HEIC/HEIF dosyaları, Sharp HEVC pikselleri çözümleyemediği için piksel istatistiklerini çıkarmak amacıyla dahili olarak PNG'ye çözümlenir.
|
||||
- Histogram, tam bir 256 bölmeli dağılım değil, kanal başına min/maks/ortalama/standart sapma sağlar.
|
||||
- `density` alanı, varsa gömülü DPI meta verisini yansıtır.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Base64 veri URI'siyle birlikte küçük bir düşük kaliteli görsel yer tutucu üretin."
|
||||
i18n_source_hash: f8a27c8021f5
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 6be095dcbe73
|
||||
---
|
||||
|
||||
# LQIP Yer Tutucu {#lqip-placeholder}
|
||||
|
||||
Bir kaynak görselden küçük bir düşük kaliteli görsel yer tutucu (LQIP) üretin. Anında gömme için küçük bir yer tutucu dosyasını, bir base64 veri URI'si, kullanıma hazır HTML `<img>` etiketi ve CSS `background-image` parçacığıyla birlikte döndürür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/lqip-placeholder`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| width | integer | Hayır | `16` | Piksel cinsinden hedef genişlik (4-64) |
|
||||
| blur | number | Hayır | `2` | Bulanıklık stratejisi için bulanıklık yarıçapı (0-20) |
|
||||
| strategy | string | Hayır | `"blur"` | Yer tutucu stratejisi: `blur`, `pixelate` veya `solid` |
|
||||
| format | string | Hayır | `"webp"` | Çıktı biçimi: `webp`, `png` veya `jpeg` |
|
||||
| quality | integer | Hayır | `50` | Çıktı kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/lqip-placeholder \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"width": 20, "strategy": "blur", "format": "webp"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.webp",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 280,
|
||||
"dataUri": "data:image/webp;base64,UklGR...",
|
||||
"width": 20,
|
||||
"height": 13,
|
||||
"bytes": 280,
|
||||
"strategy": "blur",
|
||||
"html": "<img src=\"data:image/webp;base64,UklGR...\" />",
|
||||
"css": "background-image:url('data:image/webp;base64,UklGR...');background-size:cover;background-position:center;"
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `dataUri` alanı, ek istek olmadan `src` özniteliklerinde veya CSS'de kullanıma hazır tam veri URI'sini içerir.
|
||||
- `html` ve `css` alanları, yaygın kullanım senaryoları için kopyala-yapıştır parçacıkları sağlar.
|
||||
- `blur` stratejisi, yumuşak, bulanık bir küçük resim üretir. `pixelate` stratejisi, bloklu bir mozaik oluşturur. `solid` stratejisi, tek bir ortalanmış renk döndürür.
|
||||
- Tipik yer tutucu boyutları 200-500 bayttır; bu da onları doğrudan HTML'e satır içi eklemeye uygun hale getirir.
|
||||
- Yükseklik, kaynak görselin en boy oranını korumak için otomatik olarak hesaplanır.
|
||||
- HEIC, RAW, PSD ve SVG girişleri işlemeden önce otomatik olarak çözümlenir.
|
||||
@@ -0,0 +1,92 @@
|
||||
---
|
||||
description: "Şablonlar veya özel görsellerle, biçimlendirilmiş metin kutuları ve font seçenekleriyle meme oluşturun."
|
||||
i18n_source_hash: 0a4970112ca6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: ae76e07f76ea
|
||||
---
|
||||
|
||||
# Meme Oluşturucu {#meme-generator}
|
||||
|
||||
Yerleşik şablonları veya özel görselleri kullanarak meme oluşturun. Klasik meme biçimlendirmesiyle (kalın, dış çizgili metin), birden fazla yerleşim ön ayarı ve font seçenekleriyle metin ekleyin.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/meme-generator`
|
||||
|
||||
Şu ikisinden birini kabul eder:
|
||||
- Bir görsel dosyası ve bir JSON `settings` alanı içeren **çok parçalı form verisi** (özel görsel modu)
|
||||
- Bir `templateId` içeren **JSON gövdesi** (şablon modu, dosya yüklemeye gerek yoktur)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| templateId | string | Hayır | - | Yerleşik meme şablonu kimliği. Sağlanırsa görsel yüklemesine gerek yoktur |
|
||||
| textLayout | string | Hayır | `"top-bottom"` | Metin kutusu yerleşimi: `top-bottom`, `top-only`, `bottom-only`, `center`, `side-by-side` |
|
||||
| textBoxes | array | Hayır | `[]` | `id` ve `text` alanlarını içeren metin kutusu nesnelerinin dizisi |
|
||||
| fontFamily | string | Hayır | `"anton"` | Font: `anton`, `arial-black`, `comic-sans`, `montserrat`, `bebas-neue`, `permanent-marker`, `roboto` |
|
||||
| fontSize | number | Hayır | auto | Piksel cinsinden font boyutu (8 ile 200 arası). Belirtilmezse otomatik hesaplanır |
|
||||
| textColor | string | Hayır | `"#ffffff"` | Metin dolgu rengi |
|
||||
| strokeColor | string | Hayır | `"#000000"` | Metin dış çizgi/kontur rengi |
|
||||
| textAlign | string | Hayır | `"center"` | Metin hizalaması: `left`, `center`, `right` |
|
||||
| allCaps | boolean | Hayır | `true` | Metni büyük harfe dönüştür |
|
||||
|
||||
### Metin Kutuları {#text-boxes}
|
||||
|
||||
`textBoxes` dizisindeki her giriş şunları içermelidir:
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
|-------|------|-------------|
|
||||
| id | string | Yerleşimle eşleşen kutu tanımlayıcısı (örn. `"top"`, `"bottom"`, `"left"`, `"right"`, `"center"`) |
|
||||
| text | string | Görüntülenecek meme metni |
|
||||
|
||||
### Metin Yerleşimi Kutu Kimlikleri {#text-layout-box-ids}
|
||||
|
||||
| Yerleşim | Kullanılabilir Kutu Kimlikleri |
|
||||
|--------|-------------------|
|
||||
| `top-bottom` | `top`, `bottom` |
|
||||
| `top-only` | `top` |
|
||||
| `bottom-only` | `bottom` |
|
||||
| `center` | `center` |
|
||||
| `side-by-side` | `left`, `right` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Üst ve alt metinli özel görsel:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"textLayout": "top-bottom", "textBoxes": [{"id": "top", "text": "When the code works"}, {"id": "bottom", "text": "On the first try"}], "fontFamily": "anton", "allCaps": true}'
|
||||
```
|
||||
|
||||
Yerleşik bir şablon kullanma (JSON gövdesi, dosya yüklemesi yok):
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/meme-generator \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"templateId": "drake", "textBoxes": [{"id": "top", "text": "Manual testing"}, {"id": "bottom", "text": "Automated tests"}]}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/meme-drake.png",
|
||||
"originalSize": 450000,
|
||||
"processedSize": 520000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Ya bir `templateId` ya da yüklenmiş bir görsel dosyası gereklidir. İkisi birden sağlanırsa şablon kullanılır.
|
||||
- Şablonlar kendi metin kutusu konumlarını tanımlar; şablon kullanılırken `textLayout` parametresi göz ardı edilir.
|
||||
- Metin, klasik meme görünümü için dış çizgi konturlarıyla SVG olarak işlenir.
|
||||
- Açıkça ayarlanmadıysa font boyutu, metin kutusuna sığacak şekilde otomatik olarak hesaplanır.
|
||||
- Boş metin kutuları atlanır (tüm kutular boşsa hiçbir işleme yapılmaz).
|
||||
- Şablon kullanılırken çıktı dosya adı şablon kimliğini içerir (örn. `meme-drake.png`).
|
||||
- HEIC, RAW, PSD ve SVG girdileri işlemden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "Çok kademeli kalite seçenekleriyle yapay zeka destekli gürültü ve grenlilik giderme."
|
||||
i18n_source_hash: f0dfc876e0e0
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5e0db53abd3c
|
||||
---
|
||||
|
||||
# Gürültü Giderme {#noise-removal}
|
||||
|
||||
Python yardımcı bileşenini (SCUNet modeli) kullanan, çok kademeli kalite seçenekleriyle yapay zeka destekli gürültü ve grenlilik giderme.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/noise-removal`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` sorgulayın)
|
||||
|
||||
**Model paketi:** `upscale-enhance` (5-6 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (çok parçalı) |
|
||||
| tier | string | Hayır | `"balanced"` | Kalite kademesi: `quick`, `balanced`, `quality`, `maximum` |
|
||||
| strength | number | Hayır | `50` | Gürültü giderme gücü (0-100) |
|
||||
| detailPreservation | number | Hayır | `50` | Ne kadar ayrıntının korunacağı (0-100). Daha yüksek değerler daha fazla doku korur |
|
||||
| colorNoise | number | Hayır | `30` | Renk gürültüsü azaltma gücü (0-100) |
|
||||
| format | string | Hayır | `"original"` | Çıktı biçimi: `original`, `png`, `jpeg`, `webp`, `avif`, `jxl` |
|
||||
| quality | number | Hayır | `90` | Çıktı kodlama kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/noise-removal \
|
||||
-F "file=@noisy-photo.jpg" \
|
||||
-F 'settings={"tier":"quality","strength":60,"detailPreservation":70,"colorNoise":40}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Denoising...","percent":65}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/noisy-photo_denoised.jpg",
|
||||
"originalSize": 500000,
|
||||
"processedSize": 380000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `upscale-enhance` model paketinin kurulu olmasını gerektirir (5-6 GB).
|
||||
- Kalite kademeleri hız ile kaliteyi dengeler: `quick` temel gürültü gidermeyle en hızlısıdır, `maximum` en kapsamlı çok geçişli yaklaşımı kullanır.
|
||||
- `detailPreservation` parametresi dokulu özneler (kumaş, saç, yapraklar) için kritiktir. Daha yüksek değerler, gürültü gidericinin ince ayrıntıyı düzleştirip yok etmesini önler.
|
||||
- `format` değeri `"original"` olarak ayarlandığında çıktı biçimi girdi dosyası biçimiyle eşleşir.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR girdi biçimlerini otomatik çözme yoluyla destekler.
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
description: "Yapay zeka destekli optik karakter tanıma kullanarak görsellerden metin çıkarın."
|
||||
i18n_source_hash: 3d85d423b82c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 441705d21655
|
||||
---
|
||||
|
||||
# OCR / Metin Çıkarma {#ocr-text-extraction}
|
||||
|
||||
Yapay zeka destekli optik karakter tanıma kullanarak görsellerden metin çıkarın. Birden fazla dili ve kalite kademesini destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/ocr`
|
||||
|
||||
**İşleme:** Eşzamanlı JSON yanıtı. `clientJobId` sağlanırsa ilerleme SSE aracılığıyla da bildirilir.
|
||||
|
||||
**Model paketi:** `ocr` (5-6 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (çok parçalı) |
|
||||
| quality | string | Hayır | `"balanced"` | Kalite kademesi: `fast` (Tesseract), `balanced` (PaddleOCR v5), `best` (PaddleOCR VL) |
|
||||
| language | string | Hayır | `"auto"` | Dil ipucu: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
|
||||
| enhance | boolean | Hayır | `true` | Daha iyi OCR doğruluğu için görseli ön işleme tabi tut |
|
||||
| engine | string | Hayır | - | Kullanımdan kaldırıldı. Bunun yerine `quality` kullanın. `tesseract` değerini `fast` ile, `paddleocr` değerini `balanced` ile eşler |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/ocr \
|
||||
-F "file=@document.png" \
|
||||
-F 'settings={"quality":"best","language":"en","enhance":true}'
|
||||
```
|
||||
|
||||
## Yanıt (200 OK) {#response-200-ok}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"filename": "document.png",
|
||||
"text": "Extracted text content from the image...",
|
||||
"engine": "paddleocr-vl"
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (SSE, isteğe bağlı) {#progress-sse-optional}
|
||||
|
||||
Bir `clientJobId` form alanı sağlanırsa, ilerleme olayları akıtılır:
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Recognizing text...","percent":50}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `ocr` model paketinin kurulu olmasını gerektirir (5-6 GB).
|
||||
- OCR, bir görsel indirme URL'si yerine doğrudan çıkarılan metni döndürür.
|
||||
- Bir yedek zinciri kullanır: daha yüksek kaliteli bir kademe çökerse (örn. PaddleOCR segfault), otomatik olarak bir sonraki daha düşük kademeyle yeniden dener.
|
||||
- Bir kademe çökmeden boş metin döndürürse, o da bir sonraki kademeye geri düşer.
|
||||
- Kalite kademeleri motorlara eşlenir: `fast` = Tesseract, `balanced` = PaddleOCR v5, `best` = PaddleOCR VL.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR girdi biçimlerini otomatik çözme yoluyla destekler.
|
||||
@@ -0,0 +1,74 @@
|
||||
---
|
||||
description: "Biçim dönüştürme, kalite denetimi, yeniden boyutlandırma ve meta veri temizleme ile görselleri web sunumu için optimize edin."
|
||||
i18n_source_hash: c327bbbce768
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4e69388cadd6
|
||||
---
|
||||
|
||||
# Web İçin Optimize Et {#optimize-for-web}
|
||||
|
||||
Görselleri tek adımda web sunumu için optimize edin. Biçim dönüştürme, kalite ayarı, isteğe bağlı yeniden boyutlandırma, aşamalı kodlama ve meta veri temizlemeyi bir araya getirir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/optimize-for-web`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren çok parçalı form verisi kabul eder.
|
||||
|
||||
Ayrıca gerçek zamanlı parametre ayarı için işlenen görseli doğrudan ikili olarak (çalışma alanı oluşturmadan) döndüren bir canlı önizleme uç noktası da `POST /api/v1/tools/image/optimize-for-web/preview` konumunda kullanılabilir.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Hayır | `"webp"` | Çıktı biçimi: `webp`, `jpeg`, `avif`, `png`, `jxl` |
|
||||
| quality | number | Hayır | `80` | Çıktı kalitesi (1-100) |
|
||||
| maxWidth | number | Hayır | - | Piksel cinsinden maksimum genişlik. Görsel daha genişse küçültülür. |
|
||||
| maxHeight | number | Hayır | - | Piksel cinsinden maksimum yükseklik. Görsel daha uzunsa küçültülür. |
|
||||
| progressive | boolean | Hayır | `true` | Aşamalı/geçişli kodlamayı etkinleştir |
|
||||
| stripMetadata | boolean | Hayır | `true` | EXIF, GPS, ICC ve XMP meta verilerini kaldır |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}'
|
||||
```
|
||||
|
||||
Agresif sıkıştırma ile AVIF için optimize et:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.webp",
|
||||
"originalSize": 4500000,
|
||||
"processedSize": 320000
|
||||
}
|
||||
```
|
||||
|
||||
### Önizleme Uç Noktası Yanıtı {#preview-endpoint-response}
|
||||
|
||||
Önizleme uç noktası (`/api/v1/tools/image/optimize-for-web/preview`) ikili görseli bilgilendirici başlıklarla doğrudan döndürür:
|
||||
|
||||
- `X-Original-Size` - Bayt cinsinden orijinal dosya boyutu
|
||||
- `X-Processed-Size` - Bayt cinsinden işlenmiş dosya boyutu
|
||||
- `X-Output-Filename` - URL kodlamalı çıktı dosya adı
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu araç, web varlıkları için tek noktadan bir optimizasyon boru hattı olarak tasarlanmıştır. Biçim dönüştürme, kalite ayarı, maksimum boyut sınırlama ve meta veri kaldırmayı tek geçişte yürütür.
|
||||
- Çıktı dosya adı uzantısı, seçilen biçimle eşleşecek şekilde güncellenir.
|
||||
- JXL (JPEG XL) kodlaması özel bir CLI kodlayıcı kullanır. Görsel önce PNG olarak işlenir, ardından JXL'e kodlanır.
|
||||
- Aşamalı kodlama, tarayıcıların tam görsel yüklenmeden önce düşük kaliteli bir önizleme oluşturmasına izin vererek JPEG ve PNG için algılanan yükleme süresini iyileştirir.
|
||||
- Önizleme uç noktası daha hafiftir (çalışma alanı/iş oluşturmaz) ve ön uçun canlı parametre ayarı arayüzü için tasarlanmıştır.
|
||||
@@ -0,0 +1,173 @@
|
||||
---
|
||||
description: "Yüz algılama, arka plan kaldırma ve baskı sayfası döşemesiyle yapay zeka destekli pasaport ve kimlik fotoğrafı oluşturucu."
|
||||
i18n_source_hash: d4b4f4ced988
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2979d2e1b061
|
||||
---
|
||||
|
||||
# Pasaport Fotoğrafı {#passport-photo}
|
||||
|
||||
Yapay zeka destekli pasaport ve kimlik fotoğrafı oluşturucu. İki aşamalı iş akışı: analiz (yüz algılama + arka plan kaldırma) ardından oluşturma (kırpma, yeniden boyutlandırma ve baskı için döşeme).
|
||||
|
||||
## API Uç Noktaları {#api-endpoints}
|
||||
|
||||
Bu araç, analiz ve oluşturma için ayrı uç noktalara sahip iki aşamalı bir akış kullanır.
|
||||
|
||||
**Model paketleri:** `background-removal` ve `face-detection`
|
||||
|
||||
---
|
||||
|
||||
### Aşama 1: Analiz {#phase-1-analyze}
|
||||
|
||||
`POST /api/v1/tools/image/passport-photo/analyze`
|
||||
|
||||
Yüz noktalarını algılar ve arka planı kaldırır. Ön uçun bir kırpma önizlemesi görüntülemesi için nokta verilerini ve bir önizleme döndürür.
|
||||
|
||||
#### Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (çok parçalı) |
|
||||
| clientJobId | string | Hayır | - | SSE aracılığıyla ilerleme takibi için isteğe bağlı iş kimliği |
|
||||
|
||||
#### Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/passport-photo/analyze \
|
||||
-F "file=@headshot.jpg"
|
||||
```
|
||||
|
||||
#### Yanıt (200 OK) {#response-200-ok}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"filename": "headshot.jpg",
|
||||
"preview": "<base64-encoded PNG>",
|
||||
"previewWidth": 800,
|
||||
"previewHeight": 1067,
|
||||
"landmarks": {
|
||||
"leftEye": { "x": 0.42, "y": 0.35 },
|
||||
"rightEye": { "x": 0.58, "y": 0.35 },
|
||||
"eyeCenter": { "x": 0.50, "y": 0.35 },
|
||||
"chin": { "x": 0.50, "y": 0.65 },
|
||||
"forehead": { "x": 0.50, "y": 0.22 },
|
||||
"crown": { "x": 0.50, "y": 0.18 },
|
||||
"nose": { "x": 0.50, "y": 0.48 },
|
||||
"faceCenterX": 0.50
|
||||
},
|
||||
"imageWidth": 2400,
|
||||
"imageHeight": 3200
|
||||
}
|
||||
```
|
||||
|
||||
#### İlerleme (SSE, isteğe bağlı) {#progress-sse-optional}
|
||||
|
||||
`clientJobId` sağlanırsa, ilerleme akıtılır (yüz algılama için %0-30, arka plan kaldırma için %30-95).
|
||||
|
||||
#### Hata: Yüz Algılanmadı (422) {#error-no-face-detected-422}
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "No face detected",
|
||||
"details": "Could not detect a face in the uploaded image. Please upload a clear, front-facing photo with good lighting."
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Aşama 2: Oluştur {#phase-2-generate}
|
||||
|
||||
`POST /api/v1/tools/image/passport-photo/generate`
|
||||
|
||||
Fotoğrafı kırpar, yeniden boyutlandırır ve isteğe bağlı olarak bir baskı sayfasına döşer. Aşama 1'den önbelleğe alınmış görselleri kullanır (yapay zeka yeniden çalıştırılmaz).
|
||||
|
||||
#### Parametreler (JSON gövdesi) {#parameters-json-body}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| jobId | string | Evet | - | Aşama 1'den iş kimliği |
|
||||
| filename | string | Evet | - | Aşama 1'den orijinal dosya adı |
|
||||
| countryCode | string | Evet | - | Pasaport belirtimi için ülke kodu (örn. `US`, `GB`, `IN`) |
|
||||
| documentType | string | Hayır | `"passport"` | Belge türü (ülke belirtiminden) |
|
||||
| bgColor | string | Hayır | `"#FFFFFF"` | Arka plan rengi hex değeri |
|
||||
| printLayout | string | Hayır | `"none"` | Baskı kağıdı yerleşimi: `none`, `4x6`, `a4` |
|
||||
| maxFileSizeKb | number | Hayır | `0` | KB cinsinden maksimum dosya boyutu kısıtlaması (0 = sınır yok) |
|
||||
| dpi | number | Hayır | `300` | Çıktı DPI'ı (72-1200) |
|
||||
| customWidthMm | number | Hayır | - | Mm cinsinden özel fotoğraf genişliği (ülke belirtimini geçersiz kılar) |
|
||||
| customHeightMm | number | Hayır | - | Mm cinsinden özel fotoğraf yüksekliği (ülke belirtimini geçersiz kılar) |
|
||||
| zoom | number | Hayır | `1` | Yakınlaştırma katsayısı (0.5-3). 1'den büyük değerler daha sıkı kırpar |
|
||||
| adjustX | number | Hayır | `0` | Yatay konum ayarı |
|
||||
| adjustY | number | Hayır | `0` | Dikey konum ayarı |
|
||||
| landmarks | object | Evet | - | Aşama 1 yanıtından noktalar nesnesi |
|
||||
| imageWidth | number | Evet | - | Aşama 1 yanıtından görsel genişliği |
|
||||
| imageHeight | number | Evet | - | Aşama 1 yanıtından görsel yüksekliği |
|
||||
|
||||
#### Örnek İstek {#example-request-1}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/passport-photo/generate \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"jobId": "a1b2c3d4-...",
|
||||
"filename": "headshot.jpg",
|
||||
"countryCode": "US",
|
||||
"documentType": "passport",
|
||||
"bgColor": "#FFFFFF",
|
||||
"printLayout": "4x6",
|
||||
"dpi": 300,
|
||||
"zoom": 1,
|
||||
"adjustX": 0,
|
||||
"adjustY": 0,
|
||||
"landmarks": { "leftEye": {"x":0.42,"y":0.35}, "rightEye": {"x":0.58,"y":0.35}, "eyeCenter": {"x":0.50,"y":0.35}, "chin": {"x":0.50,"y":0.65}, "forehead": {"x":0.50,"y":0.22}, "crown": {"x":0.50,"y":0.18}, "nose": {"x":0.50,"y":0.48}, "faceCenterX": 0.50 },
|
||||
"imageWidth": 2400,
|
||||
"imageHeight": 3200
|
||||
}'
|
||||
```
|
||||
|
||||
#### Yanıt (200 OK) {#response-200-ok-1}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/headshot_passport.jpg",
|
||||
"dimensions": {
|
||||
"widthMm": 51,
|
||||
"heightMm": 51,
|
||||
"widthPx": 602,
|
||||
"heightPx": 602,
|
||||
"dpi": 300
|
||||
},
|
||||
"spec": {
|
||||
"country": "United States",
|
||||
"countryCode": "US",
|
||||
"documentType": "passport",
|
||||
"documentLabel": "Passport"
|
||||
},
|
||||
"printDownloadUrl": "/api/v1/download/{jobId}/headshot_passport_print_4x6.jpg"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Temel Rota {#base-route}
|
||||
|
||||
`POST /api/v1/tools/image/passport-photo`
|
||||
|
||||
Doğru alt uç noktanın kullanılmasına yönelik yönlendirme döndürür.
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "Use /api/v1/tools/image/passport-photo/analyze or /generate"
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `background-removal` ve `face-detection` model paketlerinin kurulu olmasını gerektirir.
|
||||
- Aşama 1 yapay zeka çalıştırır (yüz noktaları + arka plan kaldırma) ve sonuçları önbelleğe alır. Aşama 2 saf Sharp görsel işlemedir (hızlı, yapay zeka gerektirmez).
|
||||
- Noktalar, normalleştirilmiş koordinatlar olarak döndürülür (görsel boyutlarına göre 0-1 aralığı).
|
||||
- Analiz yanıtındaki `preview` alanı, hızlı görüntüleme için base64 kodlamalı bir PNG'dir (en fazla 800px genişlik).
|
||||
- Ülke belirtimleri, resmi pasaport fotoğrafı gereksinimlerine dayalı belge boyutlarını, baş yüksekliği oranlarını ve göz çizgisi konumlandırmasını içerir.
|
||||
- `printLayout` seçeneği, fotoğraflar arasında 2mm boşlukla 4x6\" veya A4 kağıt üzerinde döşenmiş bir sayfa oluşturur.
|
||||
- `maxFileSizeKb` ayarlandığında, çıktı boyut sınırına sığacak şekilde yinelemeli olarak sıkıştırılır.
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
description: "Görselin tamamına veya belirli bir bölgeye pikselleştirme efekti uygulayın."
|
||||
i18n_source_hash: a3ad29841f7b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 3edf20830cf7
|
||||
---
|
||||
|
||||
# Pikselleştir {#pixelate}
|
||||
|
||||
Görselin tamamına veya belirli bir dikdörtgen bölgeye pikselleştirme efekti uygulayın. Yüzler, plakalar veya kişisel bilgiler gibi hassas içerikleri gizlemek için kullanışlıdır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/pixelate`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren çok parçalı form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| blockSize | integer | Hayır | `12` | Piksel blok boyutu (2-128); daha büyük değerler daha kaba pikselleştirme üretir |
|
||||
| region | object | Hayır | - | Pikselleştirmeyi bir dikdörtgenle sınırla (aşağıya bakın) |
|
||||
|
||||
### Bölge Nesnesi {#region-object}
|
||||
|
||||
| Alan | Tür | Zorunlu | Açıklama |
|
||||
|-------|------|----------|-------------|
|
||||
| left | integer | Evet | Piksel cinsinden sol ofset (>= 0) |
|
||||
| top | integer | Evet | Piksel cinsinden üst ofset (>= 0) |
|
||||
| width | integer | Evet | Piksel cinsinden bölge genişliği (>= 1) |
|
||||
| height | integer | Evet | Piksel cinsinden bölge yüksekliği (>= 1) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Tüm görseli pikselleştir:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"blockSize": 20}'
|
||||
```
|
||||
|
||||
Belirli bir bölgeyi pikselleştir:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/pixelate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"blockSize": 16, "region": {"left": 100, "top": 50, "width": 200, "height": 150}}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2380000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `region` belirtilmediğinde, görselin tamamı pikselleştirilir.
|
||||
- Bölge koordinatları, görselin sol üst köşesine göre piksel cinsindendir. Bölge, görsel sınırları içinde kalmalıdır.
|
||||
- Çıktı biçimi girdi biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girdileri işlemden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
description: "Özel renkler ve hata düzeltme seviyeleriyle QR kodları oluşturun."
|
||||
i18n_source_hash: 096ef4d90da5
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 6e888be32809
|
||||
---
|
||||
|
||||
# QR Kodu Oluşturucu {#qr-code-generator}
|
||||
|
||||
Yapılandırılabilir boyut, hata düzeltme seviyesi ve özel ön plan/arka plan renkleriyle metin veya URL'lerden QR kodu görselleri oluşturun.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/qr-generate`
|
||||
|
||||
Bir **JSON gövdesi** kabul eder (çok parçalı değil). Dosya yüklemeye gerek yoktur.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Evet | - | QR koduna kodlanacak içerik (1 ile 2000 karakter arası) |
|
||||
| size | number | Hayır | `400` | Piksel cinsinden çıktı görseli genişliği/yüksekliği (100 ile 10000 arası) |
|
||||
| errorCorrection | string | Hayır | `"M"` | Hata düzeltme seviyesi: `L` (%7), `M` (%15), `Q` (%25), `H` (%30) |
|
||||
| foreground | string | Hayır | `"#000000"` | Hex cinsinden QR kodu ön plan/modül rengi (`#RRGGBB`) |
|
||||
| background | string | Hayır | `"#FFFFFF"` | Hex cinsinden QR kodu arka plan rengi (`#RRGGBB`) |
|
||||
| logoDataUri | string | Hayır | - | Veri URI'si olarak logo görseli (`data:image/png;base64,...` veya `data:image/jpeg;base64,...`, en fazla 700 KB). QR kodunun ortasında QR boyutunun %22'sinde konumlandırılır. Hata düzeltmeyi `H` değerine zorlar |
|
||||
|
||||
### Hata Düzeltme Seviyeleri {#error-correction-levels}
|
||||
|
||||
| Seviye | Kurtarma | Kullanım Durumu |
|
||||
|-------|----------|----------|
|
||||
| `L` | ~%7 | Maksimum veri yoğunluğu |
|
||||
| `M` | ~%15 | Dengeli (varsayılan) |
|
||||
| `Q` | ~%25 | Basılı kodlar için iyi |
|
||||
| `H` | ~%30 | Logo kaplamalı kodlar için en iyisi |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"text": "https://snapotter.com", "size": 500, "errorCorrection": "H"}'
|
||||
```
|
||||
|
||||
Özel renklerle markalı QR kodu:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/qr-generate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"text": "Hello World", "size": 300, "foreground": "#1a365d", "background": "#f7fafc"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/qrcode.png",
|
||||
"originalSize": 0,
|
||||
"processedSize": 4520
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu uç nokta, görsel yüklemeye gerek olmadığından çok parçalı form verisi değil JSON kabul eder.
|
||||
- Çıktı her zaman bir PNG görselidir.
|
||||
- Çıktı dosya adı her zaman `qrcode.png` şeklindedir.
|
||||
- Bu araç görselleri sıfırdan oluşturduğundan `originalSize` her zaman 0'dır.
|
||||
- QR kodunun etrafında 2 modüllük bir sessiz bölge (kenar boşluğu) bulunur.
|
||||
- Maksimum metin uzunluğu 2000 karakterdir. Gerçek kapasite, hata düzeltme seviyesine ve karakter kodlamasına bağlıdır.
|
||||
- Daha yüksek hata düzeltme seviyeleri, QR kodunun kısmen gizlenmiş olsa bile taranabilir kalmasını sağlar ancak veri kapasitesini azaltır.
|
||||
- Bir `logoDataUri` sağlandığında, logonun ortayı kapatmasına rağmen QR kodunun taranabilir kalması için hata düzeltmesi otomatik olarak `H` (%30) değerine zorlanır.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "Kamera flaşının neden olduğu kırmızı gözün yapay zeka destekli algılanması ve düzeltilmesi."
|
||||
i18n_source_hash: 647c6ff1ef7c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 8419d2378269
|
||||
---
|
||||
|
||||
# Kırmızı Göz Giderme {#red-eye-removal}
|
||||
|
||||
Kamera flaşının neden olduğu kırmızı gözün yapay zeka destekli algılanması ve düzeltilmesi.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/red-eye-removal`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` sorgulayın)
|
||||
|
||||
**Model paketi:** `face-detection` (200-300 MB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (çok parçalı) |
|
||||
| sensitivity | number | Hayır | `50` | Kırmızı göz algılama duyarlılığı (0-100). Daha yüksek değerler daha ince kırmızı gözü algılar |
|
||||
| strength | number | Hayır | `70` | Düzeltme gücü (0-100). Kırmızının ne kadar agresif nötralize edileceği |
|
||||
| format | string | Hayır | - | Çıktı biçimi (isteğe bağlı geçersiz kılma) |
|
||||
| quality | number | Hayır | `90` | Çıktı kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/red-eye-removal \
|
||||
-F "file=@flash-photo.jpg" \
|
||||
-F 'settings={"sensitivity":60,"strength":80}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Detecting red eyes...","percent":40}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/flash-photo_redeye_fixed.png",
|
||||
"originalSize": 280000,
|
||||
"processedSize": 290000,
|
||||
"facesDetected": 2,
|
||||
"eyesCorrected": 4
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `face-detection` model paketinin kurulu olmasını gerektirir (200-300 MB).
|
||||
- Önce yüzleri algılar, ardından her yüz içindeki göz bölgelerini bulur ve son olarak kırmızı göz piksellerini belirleyip düzeltir.
|
||||
- `facesDetected` sayısı kaç yüz bulunduğunu gösterir; `eyesCorrected`, kırmızı gözü düzeltilen bireysel gözlerin toplam sayısıdır.
|
||||
- Çıktı, maksimum kalite koruması için her zaman PNG'dir.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR girdi biçimlerini otomatik çözme yoluyla destekler.
|
||||
@@ -0,0 +1,136 @@
|
||||
---
|
||||
description: "İsteğe bağlı efektlerle (bulanıklık, gölge, gradyan, özel arka plan) yapay zeka destekli arka plan kaldırma."
|
||||
i18n_source_hash: 326a91284529
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 59966a2154c6
|
||||
---
|
||||
|
||||
# Arka Planı Kaldır {#remove-background}
|
||||
|
||||
İsteğe bağlı efektlerle (bulanıklık, gölge, gradyan, özel arka plan) yapay zeka destekli arka plan kaldırma.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/remove-background`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` sorgulayın)
|
||||
|
||||
**Model paketi:** `background-removal` (4-5 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (çok parçalı) |
|
||||
| model | string | Hayır | - | Kullanılacak yapay zeka model çeşidi |
|
||||
| backgroundType | string | Hayır | `"transparent"` | Şunlardan biri: `transparent`, `color`, `gradient`, `blur`, `image` |
|
||||
| backgroundColor | string | Hayır | - | Düz arka plan için hex rengi |
|
||||
| gradientColor1 | string | Hayır | - | Birinci gradyan rengi |
|
||||
| gradientColor2 | string | Hayır | - | İkinci gradyan rengi |
|
||||
| gradientAngle | number | Hayır | - | Derece cinsinden gradyan açısı |
|
||||
| blurEnabled | boolean | Hayır | - | Arka plan bulanıklık efektini etkinleştir |
|
||||
| blurIntensity | number | Hayır | - | Bulanıklık yoğunluğu (0-100) |
|
||||
| shadowEnabled | boolean | Hayır | - | Özne üzerinde açılır gölgeyi etkinleştir |
|
||||
| shadowOpacity | number | Hayır | - | Gölge opaklığı (0-100) |
|
||||
| outputFormat | string | Hayır | - | Çıktı biçimi: `png`, `webp` veya `avif` |
|
||||
| edgeRefine | integer | Hayır | - | Kenar iyileştirme seviyesi (0-3) |
|
||||
| decontaminate | boolean | Hayır | - | Kenarlardan renk taşmasını kaldır |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/remove-background \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"backgroundType":"transparent","edgeRefine":2,"outputFormat":"png"}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Removing background...","percent":50}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/photo_mask.png",
|
||||
"maskUrl": "/api/v1/download/{jobId}/photo_mask.png",
|
||||
"originalUrl": "/api/v1/download/{jobId}/photo_original.png",
|
||||
"originalSize": 245000,
|
||||
"processedSize": 180000,
|
||||
"filename": "photo.jpg",
|
||||
"model": "rembg"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Efektler Uç Noktası (Aşama 2) {#effects-endpoint-phase-2}
|
||||
|
||||
`POST /api/v1/tools/image/remove-background/effects`
|
||||
|
||||
Yapay zeka modelini yeniden çalıştırmadan arka plan efektlerini yeniden uygular. Aşama 1'den önbelleğe alınmış maskeyi ve orijinali kullanır.
|
||||
|
||||
### Parametreler {#parameters-1}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| settings | JSON | Evet | - | Efekt ayarlarını içeren JSON (aşağıya bakın) |
|
||||
| backgroundImage | file | Hayır | - | Özel arka plan görseli (backgroundType `image` olduğunda) |
|
||||
|
||||
#### Ayarlar JSON alanları {#settings-json-fields}
|
||||
|
||||
| Alan | Tür | Zorunlu | Açıklama |
|
||||
|-------|------|----------|-------------|
|
||||
| jobId | string | Evet | Aşama 1'den iş kimliği |
|
||||
| filename | string | Evet | Aşama 1'den orijinal dosya adı |
|
||||
| backgroundType | string | Hayır | `transparent`, `color`, `gradient`, `blur`, `image` |
|
||||
| backgroundColor | string | Hayır | Düz arka plan için hex rengi |
|
||||
| gradientColor1 | string | Hayır | Birinci gradyan rengi |
|
||||
| gradientColor2 | string | Hayır | İkinci gradyan rengi |
|
||||
| gradientAngle | number | Hayır | Derece cinsinden gradyan açısı |
|
||||
| blurEnabled | boolean | Hayır | Arka plan bulanıklığını etkinleştir |
|
||||
| blurIntensity | number | Hayır | Bulanıklık yoğunluğu (0-100) |
|
||||
| shadowEnabled | boolean | Hayır | Açılır gölgeyi etkinleştir |
|
||||
| shadowOpacity | number | Hayır | Gölge opaklığı (0-100) |
|
||||
| outputFormat | string | Hayır | `png`, `webp` veya `avif` |
|
||||
|
||||
### Örnek İstek {#example-request-1}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/remove-background/effects \
|
||||
-F 'settings={"jobId":"a1b2c3d4-...","filename":"photo.jpg","backgroundType":"color","backgroundColor":"#FF5500","outputFormat":"png"}'
|
||||
```
|
||||
|
||||
### Yanıt (200 OK) {#response-200-ok}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/photo_nobg.png",
|
||||
"processedSize": 195000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `background-removal` model paketinin kurulu olmasını gerektirir (4-5 GB).
|
||||
- Aşama 1, saydam maskeyi ve orijinal görseli önbelleğe alır; böylece Aşama 2 (efektler) yapay zeka modelini yeniden çalıştırmadan farklı arka planları anında yeniden uygulayabilir.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR girdi biçimlerini otomatik çözme yoluyla destekler.
|
||||
- EXIF döndürmesi işlemden önce otomatik olarak düzeltilir.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Bir görseldeki belirli bir rengi başka bir renkle değiştirin veya saydam yapın."
|
||||
i18n_source_hash: df55ac451ecb
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 56726ab0952d
|
||||
---
|
||||
|
||||
# Rengi Değiştir ve Tersine Çevir {#replace-invert-color}
|
||||
|
||||
Bir kaynak renkle eşleşen pikselleri bir hedef renkle değiştirin veya saydam yapın. Renk sınırlarında düzgün geçiş için yapılandırılabilir toleransla RGB uzayında Öklid mesafesini kullanır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/replace-color`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren çok parçalı form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| sourceColor | string | Hayır | `"#FF0000"` | Bulunacak hex rengi (biçim: `#RRGGBB`) |
|
||||
| targetColor | string | Hayır | `"#00FF00"` | Değiştirilecek hex rengi (biçim: `#RRGGBB`) |
|
||||
| makeTransparent | boolean | Hayır | `false` | Eşleşen pikselleri hedef renkle değiştirmek yerine saydam yap |
|
||||
| tolerance | number | Hayır | `30` | Renk eşleştirme toleransı (0 ile 255 arası). Daha yüksek değerler daha geniş bir benzer renk aralığıyla eşleşir |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"sourceColor": "#FF0000", "targetColor": "#0000FF", "tolerance": 40}'
|
||||
```
|
||||
|
||||
Yeşil bir arka planı saydam yap:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@greenscreen.png" \
|
||||
-F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.png",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2100000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Renk eşleştirme, `tolerance * sqrt(3)` ile ölçeklenen RGB uzayında Öklid mesafesini kullanır.
|
||||
- Değiştirme geçişi renk mesafesiyle orantılıdır: kaynak renge daha yakın pikseller hedef rengin daha fazlasını alır ve düzgün geçişler oluşturur.
|
||||
- `makeTransparent` değeri `true` olduğunda, girdi biçimi alfa kanallarını desteklemiyorsa (örn. JPEG) çıktı PNG'ye (veya WebP/AVIF) zorlanır.
|
||||
- 0 toleransı yalnızca tam kaynak rengiyle eşleşir. Daha yüksek değerler (50+) daha geniş bir benzer ton aralığıyla eşleşir.
|
||||
- Saydamlık gerekmedikçe ve girdi biçiminde alfa desteği bulunmadıkça çıktı biçimi girdi biçimiyle eşleşir.
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
description: "Görselleri piksel, yüzde veya sığdırma modlarıyla yeniden boyutlandırın."
|
||||
i18n_source_hash: 00d1bffa4d38
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f5e1119e470e
|
||||
---
|
||||
|
||||
# Yeniden Boyutlandır {#resize}
|
||||
|
||||
Görselleri tam piksel boyutları, bir yüzde ölçek katsayısı veya görselin hedef boyutlara nasıl uyum sağlayacağını denetleyen bir sığdırma modu belirterek yeniden boyutlandırın.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/resize`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren çok parçalı form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| width | integer | Hayır | - | Piksel cinsinden hedef genişlik (en fazla 16383) |
|
||||
| height | integer | Hayır | - | Piksel cinsinden hedef yükseklik (en fazla 16383) |
|
||||
| fit | string | Hayır | `"contain"` | Görselin boyutlara nasıl sığdığı: `contain`, `cover`, `fill`, `inside`, `outside` |
|
||||
| withoutEnlargement | boolean | Hayır | `false` | Görsel hedeften küçükse büyütmeyi önle |
|
||||
| percentage | number | Hayır | - | Yüzdeye göre ölçekle (örn. yarı boyut için 50) |
|
||||
|
||||
`width`, `height` veya `percentage` değerlerinden en az biri sağlanmalıdır.
|
||||
|
||||
### Sığdırma Modları {#fit-modes}
|
||||
|
||||
- **contain** - En boy oranını koruyarak boyutlara sığacak şekilde yeniden boyutlandırır (boş alan bırakabilir)
|
||||
- **cover** - En boy oranını koruyarak boyutları kaplayacak şekilde yeniden boyutlandırır (kırpabilir)
|
||||
- **fill** - Boyutlara tam olarak eşleşecek şekilde uzatır (en boy oranını göz ardı eder)
|
||||
- **inside** - `contain` gibidir, ancak yalnızca küçültür, asla büyütmez
|
||||
- **outside** - `cover` gibidir, ancak yalnızca küçültür, asla büyütmez
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"width": 800, "height": 600, "fit": "contain"}'
|
||||
```
|
||||
|
||||
Yüzdeye göre yeniden boyutlandır:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"percentage": 50}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 980000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Her iki eksende de maksimum boyut 16383 pikseldir (Sharp/libvips sınırı).
|
||||
- Çıktı biçimi girdi biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girdileri işlemden önce otomatik olarak çözülür.
|
||||
- Yeniden boyutlandırmadan önce EXIF yönlendirmesi otomatik olarak uygulanır.
|
||||
- `withoutEnlargement` bayrağı, bazı görsellerin zaten hedeften küçük olabileceği toplu işleme için kullanışlıdır.
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
description: "Restorasyon, yüz iyileştirme ve renk için bir yapay zeka boru hattıyla eski fotoğraflardaki çizik, yırtık ve hasarları onarın."
|
||||
i18n_source_hash: 3de13284216c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 382c7c7b99ee
|
||||
---
|
||||
|
||||
# Fotoğraf Restorasyonu {#photo-restoration}
|
||||
|
||||
Çok adımlı bir yapay zeka boru hattı kullanarak eski fotoğraflardaki çizik, yırtık ve hasarları onarın. Çizik onarımı, yüz iyileştirme, gürültü giderme ve isteğe bağlı renklendirmeyi bir araya getirir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/restore-photo`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döndürür, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` sorgulayın)
|
||||
|
||||
**Model paketi:** `photo-restoration` (4-5 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görsel dosyası (çok parçalı) |
|
||||
| scratchRemoval | boolean | Hayır | `true` | Çizikleri ve yüzey hasarını kaldır |
|
||||
| faceEnhancement | boolean | Hayır | `true` | Restore edilen fotoğraftaki yüzleri iyileştir |
|
||||
| fidelity | number | Hayır | `0.7` | Yüz iyileştirme sadakati (0-1). Daha yüksek değerler orijinal özellikleri daha fazla korur |
|
||||
| denoise | boolean | Hayır | `true` | Restore edilen sonuca gürültü giderme uygula |
|
||||
| denoiseStrength | number | Hayır | `25` | Gürültü giderme gücü (0-100) |
|
||||
| colorize | boolean | Hayır | `false` | Restore edilen fotoğrafı renklendir (gri tonlamalı görseller için) |
|
||||
| colorizeStrength | number | Hayır | `85` | Renklendirme yoğunluğu (0-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/restore-photo \
|
||||
-F "file=@damaged-old-photo.jpg" \
|
||||
-F 'settings={"scratchRemoval":true,"faceEnhancement":true,"fidelity":0.6,"colorize":true}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` konumunda SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Removing scratches...","percent":30}
|
||||
```
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Enhancing faces...","percent":60}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/damaged-old-photo_restored.jpg",
|
||||
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
|
||||
"originalSize": 200000,
|
||||
"processedSize": 350000,
|
||||
"width": 1200,
|
||||
"height": 900,
|
||||
"steps": ["scratch_removal", "face_enhancement", "denoise", "colorize"],
|
||||
"scratchCoverage": 12.5,
|
||||
"facesEnhanced": 2,
|
||||
"isGrayscale": true,
|
||||
"colorized": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `photo-restoration` model paketinin kurulu olmasını gerektirir (4-5 GB).
|
||||
- Boru hattı birden fazla yapay zeka adımını sırayla yürütür: çizik onarımı, yüz iyileştirme (GFPGAN), gürültü giderme ve isteğe bağlı olarak renklendirme.
|
||||
- Sonuçtaki `steps` dizisi, gerçekte hangi işleme adımlarının yürütüldüğünü gösterir.
|
||||
- `scratchCoverage`, görsel alanının çizik hasarı olan tahmini yüzdesidir.
|
||||
- `fidelity`, yüzlerin orijinal görünümü koruma karşısında ne kadar güçlü iyileştirileceğini denetler. Daha düşük değerler daha agresif iyileştirme üretir; daha yüksek değerler daha korumacıdır.
|
||||
- `colorize` seçeneği, görselin gri tonlamalı olup olmadığını otomatik olarak algılar. Sonuçtaki `isGrayscale` bayrağı bu algılamayı doğrular.
|
||||
- Çıktı biçimi girdi biçimiyle otomatik olarak eşleşir.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR, HDR ve AVIF girdi biçimlerini otomatik çözme yoluyla destekler.
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
description: "Görselleri herhangi bir açıyla döndürün ve yatay veya dikey olarak çevirin."
|
||||
i18n_source_hash: af2581d7cd8d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7c555cd57021
|
||||
---
|
||||
|
||||
# Döndür ve Çevir {#rotate-flip}
|
||||
|
||||
Görselleri isteğe bağlı bir açıyla döndürün ve/veya yatay ya da dikey olarak çevirin. Döndürme ve çevirme işlemleri tek bir istekte birleştirilebilir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/rotate`
|
||||
|
||||
Bir görsel dosyası ve bir JSON `settings` alanı içeren çok parçalı form verisi kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| angle | number | Hayır | `0` | Derece cinsinden döndürme açısı (saat yönünde). Herhangi bir sayısal değeri kabul eder. |
|
||||
| horizontal | boolean | Hayır | `false` | Görseli yatay olarak çevir (ayna) |
|
||||
| vertical | boolean | Hayır | `false` | Görseli dikey olarak çevir |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Saat yönünde 90 derece döndür:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"angle": 90}'
|
||||
```
|
||||
|
||||
Yatay olarak çevir:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"horizontal": true}'
|
||||
```
|
||||
|
||||
Birlikte döndür ve çevir:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/rotate \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"angle": 45, "vertical": true}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2480000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Önce döndürme, ardından çevirme işlemleri uygulanır.
|
||||
- 90 dereceden farklı döndürmeler (örn. 45 derece), çıktı biçimine bağlı olarak saydam veya siyah dolguyla döndürülen görsele sığacak şekilde tuvali büyütür.
|
||||
- Yaygın değerler: çeyrek tur döndürmeler için 90, 180, 270.
|
||||
- İşlemden önce EXIF yönlendirmesi otomatik olarak uygulanır; bu nedenle döndürme, görsel yönlendirmeye görelidir.
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
description: "İsteğe bağlı gürültü azaltma ile uyarlanabilir, unsharp mask veya high-pass yöntemlerini kullanarak görüntüleri keskinleştirin."
|
||||
i18n_source_hash: ccb60af9faae
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 9951348a9731
|
||||
---
|
||||
|
||||
# Keskinleştirme {#sharpening}
|
||||
|
||||
Üç yöntemli gelişmiş keskinleştirme aracı: uyarlanabilir (akıllı kenar farkındalıklı), unsharp mask (klasik yarıçap/miktar) ve high-pass (doku vurgusu). Keskinleştirme artefaktlarını önlemek için yerleşik gürültü azaltma içerir.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/sharpening`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| method | string | Hayır | `"adaptive"` | Keskinleştirme algoritması: `adaptive`, `unsharp-mask`, `high-pass` |
|
||||
| sigma | number | Hayır | `1.0` | Uyarlanabilir: Gauss sigma (0.5 ile 10 arası) |
|
||||
| m1 | number | Hayır | `1.0` | Uyarlanabilir: düz alan keskinleştirme (0 ile 10 arası) |
|
||||
| m2 | number | Hayır | `3.0` | Uyarlanabilir: pürüzlü alan keskinleştirme (0 ile 20 arası) |
|
||||
| x1 | number | Hayır | `2.0` | Uyarlanabilir: düz/pürüzlü eşiği (0 ile 10 arası) |
|
||||
| y2 | number | Hayır | `12` | Uyarlanabilir: maksimum düz keskinleştirme (0 ile 50 arası) |
|
||||
| y3 | number | Hayır | `20` | Uyarlanabilir: maksimum pürüzlü keskinleştirme (0 ile 50 arası) |
|
||||
| amount | number | Hayır | `100` | Unsharp mask: keskinleştirme miktarı (0 ile 1000 arası) |
|
||||
| radius | number | Hayır | `1.0` | Unsharp mask: piksel cinsinden bulanıklık yarıçapı (0.1 ile 5 arası) |
|
||||
| threshold | number | Hayır | `0` | Unsharp mask: keskinleştirmek için minimum parlaklık farkı (0 ile 255 arası) |
|
||||
| strength | number | Hayır | `50` | High-pass: filtre gücü (0 ile 100 arası) |
|
||||
| kernelSize | number | Hayır | `3` | High-pass: konvolüsyon çekirdek boyutu (3 veya 5) |
|
||||
| denoise | string | Hayır | `"off"` | Keskinleştirme öncesi gürültü azaltma: `off`, `light`, `medium`, `strong` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"method": "adaptive", "sigma": 1.5}'
|
||||
```
|
||||
|
||||
Düz alanları korumak için eşikli unsharp mask:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/sharpening \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"method": "unsharp-mask", "amount": 150, "radius": 1.5, "threshold": 10}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2510000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Yalnızca seçilen yöntemle ilgili parametreler kullanılır. Örneğin, `method` değeri `adaptive` olduğunda `amount`, `radius` ve `threshold` yok sayılır.
|
||||
- Uyarlanabilir yöntem, yapılandırılabilir düz/pürüzlü bölge davranışıyla Sharp'ın yerleşik uyarlanabilir keskinleştirmesini kullanır.
|
||||
- `denoise` seçeneği, gürültü/tanenin yükseltilmesini önlemek için keskinleştirme öncesinde gürültü azaltma uygular.
|
||||
- High-pass keskinleştirme, orijinalden bulanıklaştırılmış bir sürümü çıkararak ince ayrıntıyı ayıklar, ardından geri harmanlar.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girdileri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
description: "Sharp ve AI yüz algılama kullanarak görüntüleri akıllıca çerçeveleyen özne, yüz ve entropi farkındalıklı kırpma."
|
||||
i18n_source_hash: acbe1439c6d8
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a0cecd8b79a9
|
||||
---
|
||||
|
||||
# Akıllı Kırpma {#smart-crop}
|
||||
|
||||
Akıllı özne farkındalıklı, yüz farkındalıklı veya kırpma tabanlı kesme. Akıllı çerçeveleme için Sharp'ın dikkat/entropi stratejilerini ve AI yüz algılamayı kullanır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/smart-crop`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döner, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` üzerinden sorgulanır)
|
||||
|
||||
**Model paketi:** `face-detection` (200-300 MB) - yalnızca `face` modu için gereklidir
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görüntü dosyası (multipart) |
|
||||
| mode | string | Hayır | `"subject"` | Kırpma modu: `subject`, `face`, `trim`. (Eski değerler `attention` ve `content`, `subject` ve `trim` değerlerine eşlenir) |
|
||||
| strategy | string | Hayır | `"attention"` | Özne modu için strateji: `attention` veya `entropy` |
|
||||
| width | integer | Hayır | - | Piksel cinsinden hedef genişlik |
|
||||
| height | integer | Hayır | - | Piksel cinsinden hedef yükseklik |
|
||||
| padding | integer | Hayır | `0` | Özne çevresindeki dolgu yüzdesi (0-50) |
|
||||
| facePreset | string | Hayır | `"head-shoulders"` | Yüz çerçeveleme ön ayarı: `closeup`, `head-shoulders`, `upper-body`, `half-body` |
|
||||
| sensitivity | number | Hayır | `0.5` | Yüz algılama duyarlılığı (0-1) |
|
||||
| threshold | integer | Hayır | `30` | Arka plan algılama için kırpma modu eşiği (0-255) |
|
||||
| padToSquare | boolean | Hayır | `false` | Kırpılmış sonucu bir kareye dolgu ile tamamla |
|
||||
| padColor | string | Hayır | `"#ffffff"` | Dolgu için arka plan rengi |
|
||||
| targetSize | integer | Hayır | - | Dolgulu çıktı için hedef boyut (piksel) |
|
||||
| quality | integer | Hayır | - | Çıktı kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/smart-crop \
|
||||
-F "file=@portrait.jpg" \
|
||||
-F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` üzerinde SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","percent":50}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/portrait_smartcrop.jpg",
|
||||
"originalSize": 500000,
|
||||
"processedSize": 320000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Modlar {#modes}
|
||||
|
||||
### Özne Modu {#subject-mode}
|
||||
Görsel olarak en ilgi çekici bölgeyi bulmak için Sharp'ın dikkat veya entropi stratejisini kullanır ve etrafında kırpar.
|
||||
|
||||
### Yüz Modu {#face-mode}
|
||||
AI kullanarak yüzleri algılar, ardından belirtilen `facePreset` kullanarak kırpmayı algılanan yüzlerin etrafında çerçeveler. Hiçbir yüz algılanmazsa özne moduna (dikkat stratejisi) geri döner.
|
||||
|
||||
### Kırpma Modu {#trim-mode}
|
||||
Görüntüden düzgün kenarlıkları/arka planı kaldırır. İsteğe bağlı olarak sonucu belirtilen bir arka plan rengi ve hedef boyutla bir kareye dolgu ile tamamlar.
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Bu araç `executionHint: "long"` ile `createToolRoute` fabrikasını kullanır, bu nedenle SSE ilerlemesiyle 202 döner.
|
||||
- Yüz modu `face-detection` model paketini gerektirir (200-300 MB).
|
||||
- Özne ve kırpma modları herhangi bir AI model paketi olmadan çalışır.
|
||||
- `facePreset` değeri, kırpmanın algılanan yüzleri ne kadar sıkı çerçevelediğini belirler: `closeup` en sıkı, `half-body` en geniş olanıdır.
|
||||
- Genişlik/yükseklik belirtilmezse varsayılan olarak 1080x1080 kullanılır.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Bir görüntüyü satır ve sütuna göre veya piksel boyutuna göre ızgara döşemelerine bölün, ZIP arşivi olarak döndürülür."
|
||||
i18n_source_hash: 57a2e11e7cce
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 01424920320f
|
||||
---
|
||||
|
||||
# Görüntü Bölme {#image-splitting}
|
||||
|
||||
Tek bir görüntüyü sütun/satır sayısına göre veya belirli piksel boyutlarına göre ızgara döşemelerine bölün. Tüm döşemeleri içeren bir ZIP arşivi döndürür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/split`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| columns | integer | Hayır | 3 | Bölünecek sütun sayısı (1 ile 100 arası) |
|
||||
| rows | integer | Hayır | 3 | Bölünecek satır sayısı (1 ile 100 arası) |
|
||||
| tileWidth | integer | Hayır | - | Piksel cinsinden döşeme genişliği (min 10). Hem `tileWidth` hem `tileHeight` ayarlandığında `columns` değerini geçersiz kılar. |
|
||||
| tileHeight | integer | Hayır | - | Piksel cinsinden döşeme yüksekliği (min 10). Hem `tileWidth` hem `tileHeight` ayarlandığında `rows` değerini geçersiz kılar. |
|
||||
| outputFormat | string | Hayır | `"original"` | Döşemeler için çıktı biçimi: `original`, `png`, `jpg`, `webp`, `avif`, `jxl` |
|
||||
| quality | number | Hayır | 90 | Kayıplı biçimler için çıktı kalitesi (1 ile 100 arası) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/split \
|
||||
-F "file=@large-image.png" \
|
||||
-F 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \
|
||||
--output split-tiles.zip
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
Yanıt, `Content-Type: application/zip` ile doğrudan bir ZIP dosyası olarak aktarılır. Dosya adı `split-<jobId>.zip` desenini izler.
|
||||
|
||||
ZIP içindeki her döşeme `<originalBaseName>_r<row>_c<col>.<ext>` olarak adlandırılır (örn. `photo_r1_c1.png`, `photo_r2_c3.webp`).
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Tek bir görüntü dosyası kabul eder.
|
||||
- HEIC, RAW, PSD ve SVG giriş biçimlerini destekler (otomatik olarak çözülür).
|
||||
- Hem `tileWidth` hem `tileHeight` sağlandığında, bunlar `columns`/`rows` üzerinde önceliğe sahiptir. Izgara boyutları `ceil(imageWidth / tileWidth)` ve `ceil(imageHeight / tileHeight)` olarak hesaplanır.
|
||||
- Kenar döşemeleri (en sağdaki sütun, alt satır), görüntü boyutları eşit olarak bölünemiyorsa belirtilen döşeme boyutundan daha küçük olabilir.
|
||||
- Maksimum ızgara boyutu 100x100 (10.000 döşeme) ile sınırlandırılmıştır.
|
||||
- Yanıt ZIP'i doğrudan aktarır, bu nedenle JSON yanıt gövdesi yoktur. Dosyayı kaydetmek için curl ile `--output` kullanın.
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
description: "Kare meta verisiyle birden fazla görüntüyü tek bir sprite sayfası ızgarasında birleştirin."
|
||||
i18n_source_hash: 1938d7fb100d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a6e4dc2fbf4f
|
||||
---
|
||||
|
||||
# Sprite Sayfası {#sprite-sheet}
|
||||
|
||||
Birden fazla görüntüyü tek bir sprite sayfası ızgarasında birleştirin. Her görüntü, ilk görüntünün boyutlarına uyacak şekilde yeniden boyutlandırılır ve ızgaraya yerleştirilir. Kare başına koordinat meta verisiyle birlikte sprite sayfası görüntüsünü döndürür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/sprite-sheet`
|
||||
|
||||
İki veya daha fazla görüntü dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| columns | integer | Hayır | `4` | Izgaradaki sütun sayısı (1-16) |
|
||||
| padding | integer | Hayır | `0` | Piksel cinsinden hücreler arası dolgu (0-64) |
|
||||
| background | string | Hayır | `"#ffffff"` | Arka plan hex rengi |
|
||||
| format | string | Hayır | `"png"` | Çıktı biçimi: `png`, `webp` veya `jpeg` |
|
||||
| quality | integer | Hayır | `90` | Çıktı kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/sprite-sheet \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@frame1.png" \
|
||||
-F "file=@frame2.png" \
|
||||
-F "file=@frame3.png" \
|
||||
-F "file=@frame4.png" \
|
||||
-F 'settings={"columns": 2, "padding": 4, "format": "png"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sprite-sheet.png",
|
||||
"originalSize": 120000,
|
||||
"processedSize": 95000,
|
||||
"frames": [
|
||||
{ "index": 0, "left": 0, "top": 0, "width": 128, "height": 128 },
|
||||
{ "index": 1, "left": 132, "top": 0, "width": 128, "height": 128 },
|
||||
{ "index": 2, "left": 0, "top": 132, "width": 128, "height": 128 },
|
||||
{ "index": 3, "left": 132, "top": 132, "width": 128, "height": 128 }
|
||||
],
|
||||
"cols": 2,
|
||||
"rows": 2,
|
||||
"cellWidth": 128,
|
||||
"cellHeight": 128,
|
||||
"canvasWidth": 260,
|
||||
"canvasHeight": 260
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- 2 ile 64 arası görüntü kabul eder. Tüm görüntüler, yüklenen ilk görüntünün boyutlarına uyacak şekilde yeniden boyutlandırılır.
|
||||
- `frames` dizisi, çıktıdaki her karenin tam piksel koordinatlarını sağlar; CSS sprite tanımları veya oyun motoru kare haritaları için uygundur.
|
||||
- Satır sayısı, görüntü sayısından ve `columns` değerinden otomatik olarak hesaplanır.
|
||||
- Hücreler arasına boşluk eklemek için `padding` parametresini kullanın. `background` rengi, dolgu alanlarında ve boş kalan sondaki hücrelerde görünür.
|
||||
- HEIC, RAW, PSD ve SVG girdileri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
description: "Hizalama, boşluk, kenarlık ve yeniden boyutlandırma modu üzerinde denetimle görüntüleri yan yana, üst üste veya bir ızgarada birleştirin."
|
||||
i18n_source_hash: 39333210505a
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b7f7b4ff7d50
|
||||
---
|
||||
|
||||
# Birleştir / Combine {#stitch-combine}
|
||||
|
||||
Birden fazla görüntüyü yan yana, dikey olarak üst üste veya bir ızgara halinde birleştirin. Hizalama, boşluk, kenarlık, köşe yarıçapı ve birden fazla yeniden boyutlandırma modunu destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/stitch`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| direction | string | Hayır | `"horizontal"` | Yerleşim yönü: `horizontal`, `vertical`, `grid` |
|
||||
| gridColumns | integer | Hayır | 2 | Yön `grid` olduğunda sütun sayısı (2 ile 100 arası) |
|
||||
| resizeMode | string | Hayır | `"fit"` | Görüntülerin nasıl yeniden boyutlandırılacağı: `fit`, `original`, `stretch`, `crop` |
|
||||
| alignment | string | Hayır | `"center"` | Çapraz eksen hizalaması: `start`, `center`, `end` |
|
||||
| gap | number | Hayır | 0 | Piksel cinsinden görüntüler arası boşluk (0 ile 1000 arası) |
|
||||
| border | number | Hayır | 0 | Piksel cinsinden dış kenarlık genişliği (0 ile 500 arası) |
|
||||
| cornerRadius | number | Hayır | 0 | Nihai çıktıya uygulanan köşe yarıçapı (0 ile 500 arası) |
|
||||
| backgroundColor | string | Hayır | `"#FFFFFF"` | Hex olarak arka plan/kenarlık rengi (örn. `#FF0000`) |
|
||||
| format | string | Hayır | `"png"` | Çıktı biçimi: `png`, `jpeg`, `webp`, `avif`, `jxl` |
|
||||
| quality | number | Hayır | 90 | Çıktı kalitesi (1 ile 100 arası) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/stitch \
|
||||
-F "file=@image1.png" \
|
||||
-F "file=@image2.png" \
|
||||
-F "file=@image3.png" \
|
||||
-F 'settings={"direction":"horizontal","resizeMode":"fit","gap":10,"backgroundColor":"#FFFFFF","format":"png"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/stitch.png",
|
||||
"originalSize": 1234567,
|
||||
"processedSize": 987654
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- En az 2 görüntü gerektirir. Multipart isteğinde birden fazla görüntü dosyası yükleyin.
|
||||
- HEIC, RAW, PSD ve SVG giriş biçimlerini destekler (otomatik olarak çözülür).
|
||||
- Yeniden boyutlandırma modları:
|
||||
- `fit` - Görüntüleri birleştirme ekseni boyunca en küçük boyuta uyacak şekilde ölçekler.
|
||||
- `original` - Orijinal boyutları korur (düzensiz kenarlar oluşturabilir).
|
||||
- `stretch` - En-boy oranını korumadan görüntüleri en küçük boyuta uymaya zorlar.
|
||||
- `crop` - En küçük boyuta uyacak şekilde görüntüleri kaplama-kırpma yapar.
|
||||
- `grid` modunda hücreler, tüm görüntülerin medyan boyutlarına göre boyutlandırılır.
|
||||
- `cornerRadius`, tek tek görüntülere değil, tüm nihai çıktıya uygulanır.
|
||||
- Bellek tükenmesini önlemek için tuval boyutu `MAX_CANVAS_PIXELS` sunucu yapılandırmasıyla sınırlandırılır.
|
||||
@@ -0,0 +1,113 @@
|
||||
---
|
||||
description: "Gizlilik ve daha küçük dosya boyutları için görüntülerden EXIF, GPS, ICC ve XMP meta verilerini kaldırın."
|
||||
i18n_source_hash: e89147734fd0
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: fdd4a93992b6
|
||||
---
|
||||
|
||||
# Meta Verileri Kaldır {#remove-metadata}
|
||||
|
||||
Görüntülerden EXIF, GPS, ICC renk profilleri ve XMP meta verilerini kaldırın. Gizlilik (GPS koordinatlarını, kamera bilgilerini kaldırma) ve dosya boyutunu küçültme için kullanışlıdır.
|
||||
|
||||
## API Uç Noktaları {#api-endpoints}
|
||||
|
||||
### Meta Verileri Kaldır {#strip-metadata}
|
||||
|
||||
`POST /api/v1/tools/image/strip-metadata`
|
||||
|
||||
Görüntüyü işler ve seçilen meta verileri kaldırılmış temizlenmiş bir sürüm döndürür.
|
||||
|
||||
### Meta Verileri İncele {#inspect-metadata}
|
||||
|
||||
`POST /api/v1/tools/image/strip-metadata/inspect`
|
||||
|
||||
Görüntüyü değiştirmeden ayrıştırılmış meta verileri JSON olarak döndürür. Kaldırmadan önce hangi meta verinin var olduğunu önizlemek için kullanışlıdır.
|
||||
|
||||
## Parametreler (Kaldırma) {#parameters-strip}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| stripExif | boolean | Hayır | `false` | EXIF verilerini kaldır (kamera ayarları, tarihler vb.) |
|
||||
| stripGps | boolean | Hayır | `false` | Yalnızca GPS/konum verilerini kaldır |
|
||||
| stripIcc | boolean | Hayır | `false` | ICC renk profilini kaldır |
|
||||
| stripXmp | boolean | Hayır | `false` | XMP meta verilerini kaldır (Adobe, IPTC) |
|
||||
| stripAll | boolean | Hayır | `true` | Tüm meta verileri tek seferde kaldır |
|
||||
|
||||
`stripAll` değeri `true` olduğunda, tek tek bayrakları geçersiz kılar ve her şeyi kaldırır.
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
Tüm meta verileri kaldır:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"stripAll": true}'
|
||||
```
|
||||
|
||||
Yalnızca GPS verilerini kaldır (kamera bilgilerini ve renk profilini koru):
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"stripAll": false, "stripGps": true}'
|
||||
```
|
||||
|
||||
Değiştirmeden meta verileri incele:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/strip-metadata/inspect \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg"
|
||||
```
|
||||
|
||||
## Örnek Yanıt (Kaldırma) {#example-response-strip}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2380000
|
||||
}
|
||||
```
|
||||
|
||||
## Örnek Yanıt (İnceleme) {#example-response-inspect}
|
||||
|
||||
```json
|
||||
{
|
||||
"filename": "photo.jpg",
|
||||
"fileSize": 2450000,
|
||||
"exif": {
|
||||
"Make": "Canon",
|
||||
"Model": "EOS R5",
|
||||
"DateTimeOriginal": "2024:03:15 14:30:00",
|
||||
"ExposureTime": "1/250",
|
||||
"FNumber": 2.8,
|
||||
"ISO": 400
|
||||
},
|
||||
"gps": {
|
||||
"GPSLatitudeRef": "N",
|
||||
"GPSLatitude": [37, 46, 30],
|
||||
"_latitude": 37.775,
|
||||
"_longitude": -122.4183
|
||||
},
|
||||
"icc": {
|
||||
"Profile Size": "3144 bytes",
|
||||
"Color Space": "RGB",
|
||||
"Description": "sRGB IEC61966-2.1"
|
||||
},
|
||||
"xmp": {
|
||||
"CreatorTool": "Adobe Photoshop 25.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Görüntü, kaldırma işleminden sonra orijinal biçiminde yeniden kodlanır. JPEG, 90 kalitede mozjpeg kullanır; PNG, 9 sıkıştırma düzeyi kullanır; WebP, 85 kalite kullanır.
|
||||
- ICC profillerinin kaldırılması, görüntü sRGB olmayan bir profille etiketlenmişse ince renk kaymalarına neden olabilir. Renk doğruluğu önemliyse `stripIcc: false` kullanın.
|
||||
- İnceleme uç noktası, kolaylık için GPS koordinatlarını ondalık enlem/boylam değerlerine (alt çizgi ön ekli) ayrıştırır.
|
||||
- Desteklenen giriş biçimleri: JPEG, PNG, WebP, AVIF, TIFF, GIF.
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
description: "Toplu destekle SVG dosyalarını özel çözünürlük ve DPI'da PNG, JPEG, WebP, AVIF, TIFF, GIF, HEIF veya JXL'ye dönüştürün."
|
||||
i18n_source_hash: cf36830f8797
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e2a4a485f4b4
|
||||
---
|
||||
|
||||
# SVG'den Raster'a {#svg-to-raster}
|
||||
|
||||
SVG dosyalarını özel çözünürlük ve DPI'da raster görüntü biçimlerine (PNG, JPEG, WebP, AVIF, TIFF, GIF, HEIF veya JXL) dönüştürün. Ayrıca birden fazla SVG'nin toplu dönüştürülmesini de destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/svg-to-raster`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| width | integer | Hayır | - | Piksel cinsinden hedef genişlik (1 ile 65536 arası). Yalnızca bir boyut ayarlanırsa en-boy oranını korur. |
|
||||
| height | integer | Hayır | - | Piksel cinsinden hedef yükseklik (1 ile 65536 arası). Yalnızca bir boyut ayarlanırsa en-boy oranını korur. |
|
||||
| dpi | integer | Hayır | 300 | Render DPI'ı, temel rasterleştirme yoğunluğunu denetler (36 ile 2400 arası) |
|
||||
| quality | number | Hayır | 90 | Kayıplı biçimler için çıktı kalitesi (1 ile 100 arası) |
|
||||
| backgroundColor | string | Hayır | `"#00000000"` | Hex olarak arka plan rengi (6 veya 8 karakter, 8 karakter alfa içerir) |
|
||||
| outputFormat | string | Hayır | `"png"` | Çıktı biçimi: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heif`, `jxl` |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/svg-to-raster \
|
||||
-F "file=@logo.svg" \
|
||||
-F 'settings={"width":1024,"dpi":300,"outputFormat":"png","backgroundColor":"#FFFFFF"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/logo.png",
|
||||
"previewUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/preview.webp",
|
||||
"originalSize": 12345,
|
||||
"processedSize": 67890
|
||||
}
|
||||
```
|
||||
|
||||
## Toplu Uç Nokta {#batch-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/svg-to-raster/batch`
|
||||
|
||||
Tek bir istekte birden fazla SVG dosyasını dönüştürün. Bir ZIP arşivi döndürür.
|
||||
|
||||
### Ek Toplu Parametreler {#additional-batch-parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| clientJobId | string | Hayır | - | İlerleme takibi için isteğe bağlı istemci tarafından sağlanan iş kimliği (maks 128 karakter) |
|
||||
|
||||
### Toplu Örnek İstek {#batch-example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/svg-to-raster/batch \
|
||||
-F "file=@icon1.svg" \
|
||||
-F "file=@icon2.svg" \
|
||||
-F "file=@icon3.svg" \
|
||||
-F 'settings={"width":512,"outputFormat":"png","dpi":150}'
|
||||
```
|
||||
|
||||
### Toplu Yanıt {#batch-response}
|
||||
|
||||
Toplu uç nokta, bir ZIP dosyasını doğrudan şu başlıklarla aktarır:
|
||||
- `Content-Type: application/zip`
|
||||
- `X-Job-Id: <jobId>`
|
||||
- `X-File-Results: <url-encoded JSON mapping of index to filename>`
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Yalnızca SVG ve SVGZ dosyalarını kabul eder (yalnızca uzantıyı değil içeriği doğrular). SVGZ otomatik olarak açılır.
|
||||
- SVG içeriği, XSS ve harici kaynak yüklemeyi önlemek için render edilmeden önce temizlenir.
|
||||
- `dpi` ayarı, SVG'nin rasterleştirildiği yoğunluğu denetler. Daha yüksek DPI, aynı SVG görüntüleme alanından daha büyük piksel boyutları üretir.
|
||||
- Hem `width` hem `height` sağlandığında, görüntü `fit: inside` kullanılarak yeniden boyutlandırılır (sınırlar içinde en-boy oranını korur).
|
||||
- Tarayıcıların yerel olarak görüntüleyemediği biçimler (TIFF, HEIF) için yanıta bir `previewUrl` dahil edilir. Önizleme, 1200px WebP küçük resmidir.
|
||||
- Varsayılan arka plan `#00000000` tamamen saydamdır. Beyaz arka plan için `#FFFFFF` olarak ayarlayın (saydamlığı desteklemeyen JPEG çıktısıyla kullanışlıdır).
|
||||
- Toplu işleme, `MAX_BATCH_SIZE` sunucu yapılandırmasına uyar ve performans için eşzamanlı işçiler kullanır.
|
||||
- Toplu işlemlerin ilerlemesi, `/api/v1/jobs/:jobId/progress` üzerinde SSE aracılığıyla takip edilebilir.
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
description: "Gölge düşürme ve arka plan kutularıyla stilize metin katmanları ekleyin."
|
||||
i18n_source_hash: 9f8e697188fc
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 23218e865407
|
||||
---
|
||||
|
||||
# Metin Katmanı {#text-overlay}
|
||||
|
||||
Görüntülere isteğe bağlı gölge düşürme ve yarı saydam arka plan kutusuyla stilize metin ekleyin. Fotoğraflarda başlıklar, altyazılar veya açıklamalar için uygundur.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/text-overlay`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Evet | - | Katman metni (1 ile 500 karakter arası) |
|
||||
| fontSize | number | Hayır | `48` | Piksel cinsinden yazı tipi boyutu (8 ile 200 arası) |
|
||||
| color | string | Hayır | `"#FFFFFF"` | Hex biçiminde metin rengi (`#RRGGBB`) |
|
||||
| position | string | Hayır | `"bottom"` | Dikey yerleşim: `top`, `center`, `bottom` |
|
||||
| backgroundBox | boolean | Hayır | `false` | Metnin arkasında yarı saydam arka plan dikdörtgeni göster |
|
||||
| backgroundColor | string | Hayır | `"#000000"` | Hex biçiminde arka plan kutusu rengi (`#RRGGBB`) |
|
||||
| shadow | boolean | Hayır | `true` | Metnin arkasına gölge düşürme uygula |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"text": "Hello World", "fontSize": 64, "color": "#FFFFFF", "position": "bottom", "shadow": true}'
|
||||
```
|
||||
|
||||
Arka plan kutusuyla:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/text-overlay \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"text": "Caption", "fontSize": 36, "position": "bottom", "backgroundBox": true, "backgroundColor": "#000000"}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2470000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Metin her zaman görüntü içinde yatay olarak ortalanır.
|
||||
- Gölge düşürme, %70 siyah opaklıkta 3px bulanıklıkla 2px kaydırma kullanır.
|
||||
- Arka plan kutusu, yazı tipi boyutuyla orantılı yükseklikte (1.8 katı), %70 opaklıkta tüm görüntü genişliğini kaplar.
|
||||
- Metin SVG kompozit aracılığıyla render edilir, bu nedenle sistemin varsayılan sans-serif yazı tipi kullanılır.
|
||||
- Metindeki XML özel karakterleri güvenli bir şekilde kaçırılır.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girdileri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
description: "Sahte saydam PNG'leri AI matlama (BiRefNet) ile düzelterek gerçek alfa üretin, ayrıca defringe kenar temizliği yapın."
|
||||
i18n_source_hash: 7eb748b80f93
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: cf0968972183
|
||||
---
|
||||
|
||||
# PNG Saydamlık Düzeltici {#png-transparency-fixer}
|
||||
|
||||
Sahte saydam PNG'leri tek tıkla düzeltin. Gerçek alfa saydamlığı üretmek için AI matlama (BiRefNet HR Matting modeli) kullanır, kenarları temizlemek için defringe son işleme uygular.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/transparency-fixer`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döner, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` üzerinden sorgulanır)
|
||||
|
||||
**Model paketi:** `background-removal` (4-5 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görüntü dosyası (multipart) |
|
||||
| defringe | number | Hayır | `30` | Defringe yoğunluğu (0-100). Kenarlar çevresindeki yarı saydam saçak piksellerini kaldırır |
|
||||
| outputFormat | string | Hayır | `"png"` | Çıktı biçimi: `png` veya `webp` |
|
||||
| removeWatermark | boolean | Hayır | `false` | Filigran kaldırma ön işlemesi uygula (medyan filtresi) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
|
||||
-F "file=@fake-transparent.png" \
|
||||
-F 'settings={"defringe":40,"outputFormat":"png"}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` üzerinde SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Processing transparency...","percent":50}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/fake-transparent_fixed.png",
|
||||
"originalSize": 180000,
|
||||
"processedSize": 150000,
|
||||
"filename": "fake-transparent.png"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `background-removal` model paketinin kurulmuş olmasını gerektirir (4-5 GB).
|
||||
- Yüksek kaliteli alfa matlama için birincil model olarak `birefnet-hr-matting` kullanır. HR modeli bellek yetersizliğine düşerse `birefnet-general` modeline geri döner.
|
||||
- `defringe` seçeneği, AI matlamanın bazen saç, kürk ve ince kenarlar çevresinde bıraktığı yarı saydam saçak piksellerini kaldırır. Alfa kanalını bulanıklaştırıp düşük güvenilirlikli pikselleri sıfırlayarak çalışır.
|
||||
- `removeWatermark` seçeneği, bir medyan filtresi ön işleme adımı uygular. Bu, özel bir filigran kaldırma aracı değil, temel bir filigran azaltmadır.
|
||||
- Yalnızca PNG veya kayıpsız WebP çıktısı verir (her ikisi de alfa saydamlığını destekler).
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini otomatik çözme yoluyla destekler.
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
description: "İnce ayrıntıyı korurken Real-ESRGAN AI süper çözünürlüğü ile görüntüleri 2x'ten 4x'e büyütün."
|
||||
i18n_source_hash: 150032e99476
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: feb5dce7f857
|
||||
---
|
||||
|
||||
# Görüntü Büyütme {#image-upscaling}
|
||||
|
||||
Real-ESRGAN kullanarak AI süper çözünürlük geliştirmesi. Ayrıntıyı korurken görüntüleri 2x-4x büyütür.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/upscale`
|
||||
|
||||
**İşleme:** Eşzamansız (202 döner, durum için SSE aracılığıyla `/api/v1/jobs/{jobId}/progress` üzerinden sorgulanır)
|
||||
|
||||
**Model paketi:** `upscale-enhance` (5-6 GB)
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Evet | - | Görüntü dosyası (multipart) |
|
||||
| scale | number | Hayır | `2` | Büyütme faktörü (örn. 2, 3, 4) |
|
||||
| model | string | Hayır | `"auto"` | Kullanılacak model (örn. `auto`, belirli model adları) |
|
||||
| faceEnhance | boolean | Hayır | `false` | Büyütme sırasında yüz geliştirme uygula |
|
||||
| denoise | number | Hayır | `0` | Gürültü azaltma gücü (0 = kapalı) |
|
||||
| format | string | Hayır | `"auto"` | Çıktı biçimi: `auto`, `png`, `jpg`, `webp`, `tiff`, `gif`, `avif`, `heic`, `heif`, `jxl` |
|
||||
| quality | number | Hayır | `95` | Çıktı kalitesi (1-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/upscale \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"scale":4,"model":"auto","faceEnhance":true,"format":"png"}'
|
||||
```
|
||||
|
||||
## Yanıt {#response}
|
||||
|
||||
### İlk Yanıt (202 Accepted) {#initial-response-202-accepted}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
### İlerleme (`/api/v1/jobs/{jobId}/progress` üzerinde SSE) {#progress-sse-at-api-v1-jobs-jobid-progress}
|
||||
|
||||
```
|
||||
event: progress
|
||||
data: {"phase":"processing","stage":"Upscaling...","percent":60}
|
||||
```
|
||||
|
||||
### Nihai Sonuç (SSE aracılığıyla) {#final-result-via-sse}
|
||||
|
||||
```json
|
||||
{
|
||||
"phase": "complete",
|
||||
"percent": 100,
|
||||
"result": {
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/{jobId}/photo_4x.png",
|
||||
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
|
||||
"originalSize": 120000,
|
||||
"processedSize": 2400000,
|
||||
"width": 4096,
|
||||
"height": 4096,
|
||||
"method": "realesrgan-x4plus"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- `upscale-enhance` model paketinin kurulmuş olmasını gerektirir (5-6 GB).
|
||||
- Mevcut olduğunda Real-ESRGAN kullanır; AI modeli kullanılamıyorsa Lanczos interpolasyonuna geri döner.
|
||||
- `faceEnhance` seçeneği, daha iyi yüz kalitesi için büyütme sırasında GFPGAN yüz onarımı uygular.
|
||||
- Tarayıcıda önizlenemeyen çıktı biçimleri (HEIC, JXL, TIFF) için ana çıktının yanında bir WebP önizlemesi oluşturulur.
|
||||
- HEIC/HEIF, RAW, TGA, PSD, EXR ve HDR giriş biçimlerini otomatik çözme yoluyla destekler.
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
description: "Raster görüntüleri siyah-beyaz (potrace) ve tam renkli çok katmanlı vektörleştirme ile SVG'ye dönüştürün."
|
||||
i18n_source_hash: f3e4777188ad
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: de604f654255
|
||||
---
|
||||
|
||||
# Görüntüden SVG'ye {#image-to-svg}
|
||||
|
||||
İzleme algoritmaları kullanarak raster görüntüleri SVG'ye vektörleştirin. Siyah-beyaz izlemeyi (potrace) ve tam renkli çok katmanlı vektörleştirmeyi destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/vectorize`
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| colorMode | string | Hayır | `"bw"` | İzleme modu: `bw` (siyah ve beyaz) veya `color` (çok renkli katmanlar) |
|
||||
| threshold | number | Hayır | 128 | S&B modu için parlaklık eşiği (0 ile 255 arası). Altındaki pikseller siyah olur. |
|
||||
| colorPrecision | number | Hayır | 6 | Renk modu için renk niceleme hassasiyeti (1 ile 16 arası). Daha yüksek değerler daha belirgin renk katmanları üretir. |
|
||||
| layerDifference | number | Hayır | 6 | Renk modunda katmanlar arası minimum renk farkı (1 ile 128 arası) |
|
||||
| filterSpeckle | number | Hayır | 4 | Piksel cinsinden izlenen şekiller için minimum alan (1 ile 256 arası). Gürültü/lekeleri kaldırır. |
|
||||
| pathMode | string | Hayır | `"spline"` | Yol yumuşatma: `none` (pürüzlü), `polygon` (düz segmentler), `spline` (yumuşak eğriler) |
|
||||
| cornerThreshold | number | Hayır | 60 | Renk modunda köşe algılama için açı eşiği (0 ile 180 derece arası) |
|
||||
| invert | boolean | Hayır | `false` | İzlemeden önce görüntüyü tersine çevir (siyah/beyazı değiştir) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/vectorize \
|
||||
-F "file=@logo.png" \
|
||||
-F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}'
|
||||
```
|
||||
|
||||
### Renkli Vektörleştirme {#color-vectorization}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/vectorize \
|
||||
-F "file=@illustration.png" \
|
||||
-F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/logo.svg",
|
||||
"originalSize": 45678,
|
||||
"processedSize": 12345
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Giriş biçiminden bağımsız olarak çıktı her zaman bir SVG dosyasıdır.
|
||||
- HEIC, RAW, PSD ve SVG giriş biçimlerini destekler (izlemeden önce otomatik olarak raster'a çözülür).
|
||||
- S&B modu potrace algoritmasını kullanır. Görüntü önce gri tonlamaya dönüştürülür, ardından izlemeden önce saf siyah/beyaza eşiklenir.
|
||||
- Renk modu çok katmanlı bir yaklaşım kullanır: görüntü renk katmanlarına nicelenir, her biri ayrı ayrı izlenir ve SVG çıktısında üst üste yığılır.
|
||||
- Daha düşük `filterSpeckle` değerleri daha fazla ayrıntıyı korur ancak daha fazla yollu daha büyük SVG dosyaları üretir.
|
||||
- `pathMode` ayarı dosya boyutunu önemli ölçüde etkiler: `none` en fazla yolu üretir, `spline` en yumuşak (ve genellikle en küçük) çıktıyı üretir.
|
||||
- Logolar ve simgeler için en iyi sonuçlar için, temiz ve yüksek kontrastlı bir girdiyle S&B modunu kullanın. Fotoğraflar veya illüstrasyonlar için daha yüksek `colorPrecision` ile renk modunu kullanın.
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
description: "Ayarlanabilir güç, renk ve konumla bir vinyet efekti ekleyin."
|
||||
i18n_source_hash: 0b9795fea2eb
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c07ff3aaa177
|
||||
---
|
||||
|
||||
# Vinyet {#vignette}
|
||||
|
||||
Bir görüntünün kenarlarını karartan veya renklendiren bir vinyet efekti ekleyin. Ayarlanabilir güç, renk, yarıçap, yumuşaklık, yuvarlaklık ve merkez konumunu destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/vignette`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| strength | number | Hayır | `0.5` | Vinyet opaklığı (0.1-1) |
|
||||
| color | string | Hayır | `"#000000"` | Vinyet hex rengi |
|
||||
| radius | integer | Hayır | `70` | Yarı çaprazın yüzdesi olarak dış yarıçap (0-100) |
|
||||
| softness | integer | Hayır | `50` | Tüy yumuşaklığı (0-100); daha yüksek değerler daha kademeli bir solma üretir |
|
||||
| roundness | integer | Hayır | `100` | Şekil: 100 = daire, 0 = görüntü en-boy oranına uyan elips |
|
||||
| centerX | integer | Hayır | `50` | Yüzde olarak yatay merkez konumu (0-100) |
|
||||
| centerY | integer | Hayır | `50` | Yüzde olarak dikey merkez konumu (0-100) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/vignette \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"strength": 0.7, "radius": 60, "softness": 70}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2410000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Daha küçük bir `radius` görüntünün daha fazlasını karartır; daha büyük bir yarıçap vinyeti en uç kenarlarla sınırlar.
|
||||
- Yaratıcı vinyet efektleri için siyah olmayan bir `color` kullanın (örn. beyaz veya sepya tonları).
|
||||
- `centerX` ve `centerY` değerlerini ayarlamak, net alanı merkez dışına konumlandırmanızı sağlar; bu, çerçevenin ortasında olmayan bir özneye odağı çekmek için kullanışlıdır.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girdileri işlenmeden önce otomatik olarak çözülür.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Yapılandırılabilir konum, opaklık ve ölçekle bir logo veya görüntüyü filigran olarak yerleştirin."
|
||||
i18n_source_hash: c73ab0ef8ab9
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f0bc773265df
|
||||
---
|
||||
|
||||
# Görüntü Filigranı {#image-watermark}
|
||||
|
||||
Bir logo veya ikincil görüntüyü bir temel görüntü üzerinde filigran olarak yerleştirin. Filigran, temel görüntü genişliğine göre ölçeklenir ve bir köşede veya merkezde konumlandırılır.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/watermark-image`
|
||||
|
||||
**İki** görüntü dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| position | string | Hayır | `"bottom-right"` | Filigran yerleşimi: `center`, `top-left`, `top-right`, `bottom-left`, `bottom-right` |
|
||||
| opacity | number | Hayır | `50` | Filigran opaklık yüzdesi (0 ile 100 arası) |
|
||||
| scale | number | Hayır | `25` | Ana görüntü genişliğinin yüzdesi olarak filigran genişliği (1 ile 100 arası) |
|
||||
|
||||
### Dosya Alanları {#file-fields}
|
||||
|
||||
| Alan Adı | Zorunlu | Açıklama |
|
||||
|------------|----------|-------------|
|
||||
| file | Evet | Ana/temel görüntü |
|
||||
| watermark | Evet | Filigran/logo görüntüsü |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-image \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F "watermark=@logo.png" \
|
||||
-F 'settings={"position": "bottom-right", "opacity": 60, "scale": 20}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2520000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Her iki görüntü de doğrulanır ve çözülür (HEIC, RAW, PSD, SVG desteklenir).
|
||||
- Filigran, genişliği ana görüntü genişliğinin %`scale`'sine eşit olacak şekilde orantılı olarak yeniden boyutlandırılır.
|
||||
- Opaklık, `dest-in` harmanlamayla birleştirilen bir alfa maskesi aracılığıyla uygulanır.
|
||||
- Köşe konumları görüntü kenarından 20px dolgu kullanır.
|
||||
- Filigran görüntüsünde saydamlık varsa (örn. bir PNG logosu), birleştirme sırasında korunur.
|
||||
- İşlemeden önce her iki görüntüde de EXIF yönü otomatik olarak uygulanır.
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
description: "Yapılandırılabilir konum, opaklık, döndürme ve döşemeyle metin filigranları ekleyin."
|
||||
i18n_source_hash: b80f12f410e4
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e50e761ccf00
|
||||
---
|
||||
|
||||
# Metin Filigranı {#text-watermark}
|
||||
|
||||
Görüntülere bir metin filigranı katmanı ekleyin. Köşelerde/merkezde tek yerleşimi veya tüm görüntü boyunca döşenmiş tekrarı, yapılandırılabilir yazı tipi boyutu, renk, opaklık ve döndürmeyle destekler.
|
||||
|
||||
## API Uç Noktası {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/image/watermark-text`
|
||||
|
||||
Bir görüntü dosyası ve bir JSON `settings` alanı içeren multipart form verisini kabul eder.
|
||||
|
||||
## Parametreler {#parameters}
|
||||
|
||||
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Evet | - | Filigran metni (1 ile 500 karakter arası) |
|
||||
| fontSize | number | Hayır | `48` | Piksel cinsinden yazı tipi boyutu (8 ile 1000 arası) |
|
||||
| color | string | Hayır | `"#000000"` | Hex biçiminde metin rengi (`#RRGGBB`) |
|
||||
| opacity | number | Hayır | `50` | Metin opaklık yüzdesi (0 ile 100 arası) |
|
||||
| position | string | Hayır | `"center"` | Yerleşim: `center`, `top-left`, `top-right`, `bottom-left`, `bottom-right`, `tiled` |
|
||||
| rotation | number | Hayır | `0` | Derece cinsinden metin döndürme açısı (-360 ile 360 arası) |
|
||||
|
||||
## Örnek İstek {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"text": "SAMPLE", "fontSize": 64, "opacity": 30, "position": "center", "rotation": -30}'
|
||||
```
|
||||
|
||||
Tüm görüntü boyunca döşenmiş filigran:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/image/watermark-text \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@photo.jpg" \
|
||||
-F 'settings={"text": "DRAFT", "fontSize": 36, "opacity": 20, "position": "tiled", "rotation": -45}'
|
||||
```
|
||||
|
||||
## Örnek Yanıt {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2480000
|
||||
}
|
||||
```
|
||||
|
||||
## Notlar {#notes}
|
||||
|
||||
- Filigran, SVG metni olarak render edilir ve görüntü üzerine birleştirilir, çıktı kalitesini korur.
|
||||
- Döşeme modu, metin öğelerini yazı tipi boyutuna göre aralıklar (6x yatay, 4x dikey aralık), en fazla 500 öğeyle sınırlandırılır.
|
||||
- Köşe konumları için kenardan dolgu yazı tipi boyutuna eşittir.
|
||||
- Kullanılan yazı tipi sistemin varsayılan sans-serif yazı tipidir.
|
||||
- Metindeki XML özel karakterleri (`&`, `<`, `>`, `"`, `'`) güvenli bir şekilde kaçırılır.
|
||||
- Çıktı biçimi giriş biçimiyle eşleşir. HEIC, RAW, PSD ve SVG girdileri işlenmeden önce otomatik olarak çözülür.
|
||||
Reference in New Issue
Block a user