33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
Ne yaptım
|
||
src/images/processor/mod.rs içinde resize/crop mantığını crop moduna göre gerçek hale getirdim:
|
||
|
||
fill → esnetir (distortion olabilir, bilinçli)
|
||
cover / center / top / bottom / left / right / smart → oran korunur, sonra crop ile hedef ebada getirilir
|
||
contain → oran korunur, sadece sığdırır (kırpma yok)
|
||
Ek olarak:
|
||
|
||
libvips encode hatasında otomatik image fallback var.
|
||
Böylece Docker’daki PngsaveBufferError gibi hatalarda kullanıcıya 500 dönmek yerine işleme devam eder.
|
||
Neden bu senin sorunu çözer
|
||
Senin örnekte 1500x1500 verirken yüzün “genişleyip daralması” gibi bozulma fill davranışından olurdu.
|
||
Artık default cover/center hattı oranı koruyarak çalışır; görüntü bozulmaz, gerekirse kırpılır.
|
||
|
||
Not
|
||
Bu son derleme denemesinde ağ/sandbox yüzünden utoipa-swagger-ui zip indirme adımı 502 verdi (kod hatası değil).
|
||
Uygulamayı sende normal ortamda çalıştırıp aynı request’i tekrar denersen farkı görürsün.
|
||
|
||
İstersen bir sonraki adımda cover için hangi taraftan kırpacağını (top/left/right/...) endpoint örnekleriyle net bir mini tablo halinde yazayım.
|
||
|
||
Harika, bu şekilde devam edelim.
|
||
|
||
Hazır olunca şu sırayla kontrol et:
|
||
|
||
docker compose build --no-cache api
|
||
docker compose up -d api
|
||
Container içinde:
|
||
vips --version
|
||
vips -l | rg -i "pngsave|webpsave|jpegsave|heifsave|avif"
|
||
API’ye test isteği atıp logda şunu kontrol et:
|
||
image processing worker concurrency ... active_concurrency=...
|
||
mümkünse artık libvips encode failed görünmemeli
|
||
Takıldığın logu at, beraber anında yorumlayalım. |