PlacePix Geliştirici Rehberi
Kendi barındırılan yer tutucu görüntü hizmeti için tam API referansı ve özellik belgeleri. Docker dağıtımı, akıllı kırpma, gradyan yer tutucuları, SVG oluşturma, harf avatarları ve sosyal medya ön ayarlarını kapsar.
PlacePix Nedir?
PlacePix, geliştiriciler ve tasarım ekipleri için oluşturulmuş kendi barındırılan bir yer tutucu görüntü hizmetidir. Harici ağ çağrıları gerektiren ve kaybolabilen üçüncü taraf yer tutucu hizmetlerinin aksine, PlacePix tamamen kendi altyapınızda çalışır. Görüntüleri klasörlere bırakın ve anında yeniden boyutlandırılmış, filtrelenmiş ve formatlanmış görüntüler sunan URL uç noktaları alın.
Hizmet, görüntü işleme Pillow ve OpenCV tarafından desteklenen FastAPI kullanılarak Python'da yazılmıştır. Docker dağıtımını ve S3 uyumlu nesne depolamayı destekler.
Özellikler
- Sıfır yapılandırma — görüntüleri klasörlere bırakın ve başlayın
- Yüz tanımalı kırpma — OpenCV yüzleri algılar ve merkezler
- Gradyan ve SVG yer tutucuları — görüntü gerekmez
- Sosyal medya ön ayarları — Instagram, YouTube, TikTok boyutları dahili
- Renk arama — marka paletinize uyan görüntüleri bulun
- Harf avatarları — isimlerden deterministik profil görüntüleri
Docker Dağıtım Kılavuzu
PlacePix'i çalıştırmanın en hızlı yolu Docker'dır. Tek bir komut, akıllı tarama, renk çıkarma ve gömülü URL oluşturucu ile tüm hizmeti dağıtır.
Tek Satır Dağıtım
docker run -d -p 3000:3000 \
-v ./images:/app/images \
riadvice/placepix:latest
Docker Compose (Önerilen)
services:
placepix:
image: riadvice/placepix:latest
ports:
- "3000:3000"
volumes:
- ./images:/app/images
- ./data:/app/data
environment:
- HOST=0.0.0.0:3000
- UPLOAD_ENABLED=true
- WATERMARK_ENABLED=false
restart: unless-stopped
Kalıcı Veri ve Ortam
Konteyner yeniden başlatmalarında durumu korumak için hem /app/images (görüntü kitaplığınız) hem de /app/data (tarama önbelleği ve meta veriler) bağlayın. Davranışı ortam değişkenleri veya bir .env dosyası aracılığıyla yapılandırın.
OVHcloud S3 Uyumlu Depolama
PlacePix herhangi bir S3 uyumlu backend'i destekler. OVHcloud Object Storage için şunları ayarlayın:
S3_ENABLED=true
S3_ENDPOINT=https://s3.rbx.io.cloud.ovh.net
S3_ACCESS_KEY=your-key
S3_SECRET_KEY=your-secret
S3_BUCKET=your-bucket
S3_REGION=rbx
Yüz Algılayan Akıllı Kırpma
Standart orta kırpma, portre fotoğrafçılığında yüzleri kesebilir. PlacePix, OpenCV Haar kaskadlarıyla desteklenen yüz tanımalı akıllı kırpma ile bunu çözer.
Nasıl Çalışır
Bir istek ?fit=smart içerdiğinde, PlacePix OpenCV kullanarak görüntüdeki insan yüzlerini tarar. Yüzler algılanırsa, kırpma penceresi yüz ağırlık merkezinin altın oran kesişim noktalarına olabildiğince yakın olması için kaydırılır. Hiç yüz bulunamazsa, standart orta kırpmaya geri döner.
API Örnekleri
# Yüz tanımalı kırpma (yüzleri algılar ve merkezler)
/400/300/people?fit=smart
# Standart orta kırpma
/400/300/people?fit=crop
# Kapak doldurma (esneyebilir)
/400/300/people?fit=cover
# İçerme (letterboxing)
/400/300/people?fit=contain
Akıllı Kırpma Ne Zaman Kullanılır
- Portre fotoğrafçılığı ve kafa çekimleri
- Yüzlerin önemli olduğu takım sayfaları
- Sosyal medya küçük resimleri
- Geometrik merkez kırpmanın kompozisyonu bozduğu her senaryo
Gradyan Yer Tutucu API
Herhangi bir kaynak yüklemeden anında doğrusal ve radyal gradyan görüntüleri oluşturun. Kahraman arka planları, yükleme durumları ve tasarım maketleri için mükemmel.
Endpoint Sözdizimi
/gradient/{width}/{height}/{from_hex}/{to_hex}
Örnekler
# Basit doğrusal gradyan (yukarıdan aşağıya)
/gradient/800/400/3b82f6/10b981
# 45 derecelik açılı gradyan
/gradient/800/400/e11d48/f59e0b?angle=45
# Merkezden radyal gradyan
/gradient/800/400/1e293b/64748b?gradient_type=radial
# Çıktı formatı ile
/gradient/800/400/0ea5e9/ffffff?format=webp&quality=80
Parametre Referansı
{from_hex}/{to_hex}— # öneki olmadan hex renkler?angle=45— derece cinsinden doğrusal açı (0-360)?gradient_type=radial— radyal gradyana geçer?format=webp— WebP çıktısı (daha küçük dosya boyutu)
SVG Yer Tutucu Oluşturucu
SVG placeholder'ları sunucu tarafı görüntü işlemesi gerektirmez. Özelleştirilebilir arka plan rengi, ön plan rengi ve metin etiketi ile inline SVG olarak oluşturulurlar.
Endpoint
/svg/{width}/{height}?bg={hex}&fg={hex}&text={label}
Örnekler
# Default wireframe placeholder
/svg/400/300
# Custom brand colors
/svg/400/300?bg=1c1917&fg=0ea5e9
# With custom text
/svg/400/300?bg=0ea5e9&fg=ffffff&text=Hero+Section
Neden SVG?
- Dosya boyutu 500 byte'ın altında
- Kalite kaybı olmadan sonsuz ölçeklenebilir
- Sıfır sunucu işleme maliyeti
- Wireframe'ler ve düşük kaliteli prototipler için mükemmel
Sosyal Medya Ön Ayarları
PlacePix, popüler sosyal medya platformları ve ekran boyutları için önceden tanımlanmış boyutlar içerir. Instagram, YouTube, TikTok, LinkedIn, X (Twitter) ve standart ekranlar için mükemmel boyutlu placeholder görüntüleri oluşturmak için bunları kullanın.
/preset/instagram-square/nature # 1080x1080
/preset/instagram-portrait/nature # 1080x1350
/preset/instagram-story/nature # 1080x1920
YouTube
/preset/youtube-thumbnail/nature # 1280x720
/preset/youtube-banner/nature # 2560x423
TikTok
/preset/tiktok-video/nature # 1080x1920 (9:16)
/preset/linkedin-post/nature # 1200x627
X (Twitter)
/preset/twitter-header/nature # 1500x500
Ekran Boyutları
/preset/mobile/nature # 375x812
/preset/tablet/nature # 768x1024
/preset/desktop/nature # 1920x1080
/preset/4k/nature # 3840x2160
Uzun Kuyruk Kullanım Durumu: Instagram Story API
Bir sosyal medya yönetim aracı oluşturuyorsanız ve Instagram story boyutu yer tutucu görüntülerine ihtiyacınız varsa, /preset/instagram-story/{category} kullanın. Portre fotoğrafları için ?fit=smart ile ve optimize edilmiş teslimat için ?format=webp&quality=70 ile birleştirin.
Yön Filtreleme
Seçimden önce rastgele görüntüleri yerel en boy oranlarına göre filtreleyin. Bu, başlıklar için yatay, kartlar için dikey veya küçük resimler için kare gibi doğal olarak bir düzene sığan görüntülere ihtiyaç duyduğunuzda kullanışlıdır.
Uç Noktalar
# Landscape images (width > height)
/400/300?orientation=landscape
# Portrait images (height > width)
/400/300?orientation=portrait
# Squarish images (within 15% of 1:1 by default)
/400/300?orientation=squarish
# Combined with other filters
/400/300/nature?orientation=landscape&seed=spring
/color/0ea5e9/400/300?orientation=portrait
/api/color/3b82f6?orientation=landscape
Yapılandırma
squarish toleransı ORIENTATION_SQUARISH_TOLERANCE ortam değişkeni üzerinden yapılandırılabilir (varsayılan: 0.15). 0.15 değeri, en boy oranı 0.85 ile 1.15 arasında olan görüntülerin kare olarak kabul edildiği anlamına gelir. Tam 1:1 için 0.0 olarak ayarlayın.
Nasıl Çalışır
PlacePix, başlangıç taraması sırasında (yerel dosyalar) ve arka plan meta veri taraması sırasında (S3 görüntüleri) dosya başlıklarından görüntü boyutlarını okur. Boyutlar bellekte saklanır ve rastgele veya seed tabanlı seçimden önce aday havuzunu filtrelemek için kullanılır. Bir yön istenir ancak eşleşen görüntü yoksa 404 döndürülür.
Filtreler ve Efektler
Sorgu parametreleri aracılığıyla herhangi bir görüntüye gerçek zamanlı filtreler ve efektler uygulayın. Tüm işleme sunucu tarafında yapılır ve sonraki istekler için önbelleğe alınır.
Renk Ayarlamaları
?grayscale=1 # Siyah ve beyaz
?sepia=1 # Sıcak sepya tonu
?tint=0ea5e9 # Hex renk kaplaması
?brightness=1.3 # 0,0 ile 2,0 arası
?contrast=1.2 # 0,0 ile 2,0 arası
?saturation=2.0 # 0,0 ile 2,0 arası
?invert=true # Renkleri tersine çevir
?posterize=4 # Renk seviyeleri (1-8)
?duotone=ff0000,0000ff # İki renkli harita
Görüntü Efektleri
?blur=2 # Gauss bulanıklığı (1-10)
?sharpen=1.5 # Keskinleştirme miktarı
?emboss=true # 3D kabartma
?edges=sobel # Kenar algılama
?edges=canny # Canny kenarları
?halftone=4 # Nokta deseni
?oil_painting=true # Yağlı boya stili
?pencil_sketch=true # Kalem eskizi
?cartoon=true # Çizgi film efekti
?vignette=0.5 # Kenarları karart (0-1)
Yerleşim Parametreleri
?text=Hello+World # Metin yerleşimi
?border=4,ffffff # Kenarlık genişliği ve rengi
?watermark=1 # Yapılandırılmış filigranı uygula
?padding=20 # İç dolgu
Avatar Oluşturucu
Herhangi bir isim veya e-postadan deterministik avatarlar oluşturun. PlacePix iki avatar türünü destekler: Harf Avatarı (renkli baş harfler) ve Multiavatar (çok kültürlü vektör avatarlar).
Endpoint
/avatar/{size}/{name}
/avatar/{size}/{name}.{ext}
Parametreler
type— avatar type:letter(default) ormultiavatarsize— pixel size (e.g.64,128,256)name— any string; used as seed for the avatar
Harf Avatarı (type=letter)
circle— crop to a circle shapeborder={width}— kenarlık ekleborder_color={hex}— kenarlık rengibg={hex}— override background colorfg={hex}— override text/foreground colorsingle=true— use only the first letteruppercase=false— preserve lowercase letterspalette={name}— choose fromflatui,material,pastel,neon,cool,warm
Multiavatar (type=multiavatar)
env— include environment background (trueby default,falseto omit)part— specific part code (optional, e.g.11)theme— specific theme code (optional, e.g.C)
Örnekler
# Simple 128px letter avatar
/avatar/128/John+Doe
# Circle letter avatar with custom border
/avatar/128/John+Doe?circle=true&border=2&border_color=ffffff
# Single initial, pastel palette
/avatar/64/Alice?single=true&palette=pastel
# SVG letter output (scalable, under 500 bytes)
/avatar/128/John+Doe.svg
# Multiavatar (multicultural vector avatar)
/avatar/128/Binx+Bond?type=multiavatar
# Multiavatar without environment background
/avatar/128/Binx+Bond?type=multiavatar&env=false
# Specific multiavatar version
/avatar/128/Binx+Bond?type=multiavatar&part=11&theme=C
Neden Harf Avatarı Kullanmalı?
- Sıfır harici bağımlılık — Gravatar veya üçüncü taraf avatar hizmeti yok
- Deterministik — aynı isim her zaman aynı rengi üretir
- SVG desteği — sonsuz ölçeklenebilir, HiDPI ekranlar için mükemmel
- Herhangi bir marka estetiği için altı yerleşik renk paleti
Neden Multiavatar Kullanmalı?
- 12 milyar benzersiz çok kültürlü avatar
- Deterministik — aynı isim her zaman aynı avatarı üretir
- Saf SVG çıktısı — küçük dosya boyutu, sonsuz ölçeklenebilir
- Harici API çağrılarına gerek yok
REST API Hızlı Referans
Tüm uç noktalar CORS'u destekler ve uzun süreli önbellek başlıklarıyla görüntüleri döndürür. Base64 JSON çıktısı küçük küçük resimler için kullanılabilir.
Görüntü Uç Noktaları
GET /{width}/{height}/{category}— Kategoriden rastgele görüntüGET /{width}/{height}— Tüm kategorilerden rastgele görüntüGET /id/{id}/{width}/{height}— ID'ye göre belirli görüntüGET /ratio/{ratio}/{width}/{category}— En boy oranı görüntüsüGET /preset/{preset}/{category}— Sosyal medya ön ayarıGET /color/{hex}/{width}/{height}— Renk eşleşen görüntüGET /gradient/{w}/{h}/{from}/{to}— Gradyan görüntüsüGET /svg/{width}/{height}— SVG yer tutucuGET /avatar/{size}/{name}— Harf avatarı (PNG/SVG)
Meta Veri Uç Noktaları
GET /api/images— Kategorileri ve toplamları listeleGET /api/info/id/{id}— Görüntü meta verisi (boyutlar, renkler, format)GET /api/color/{hex}— Bir renkle eşleşen görüntüler
Sağlık Uç Noktaları
GET /health— Canlılık sondası (Docker/K8s)GET /ready— Hazır olma sondası (503 görüntüler yüklenene kadar)
Uzmanlık ve Referanslar
- 2008'den beri açık kaynak ekosistemine aktif katkıda bulunanlar
- Tüm kod MIT Lisansı altında açık kaynak ve GitHub'da denetlenebilir
Sıkça Sorulan Sorular
Docker ile PlacePix'i nasıl dağıtırım?
docker run -d -p 3000:3000 -v ./images:/app/images riadvice/placepix:latest komutunu çalıştırın. Görüntü klasörünüzü bağlayın ve hizmet akıllı tarama etkinleştirilmiş olarak hemen başlar.
Yüz algılayan akıllı kırpma nedir?
PlacePix, görüntülerde yüzleri tespit etmek için OpenCV Haar kaskadlarını kullanır. Herhangi bir URL'ye ?fit=smart eklediğinizde, kırpma bölgesi geometrik merkezi kullanmak yerine tespit edilen yüzleri ortalamak için kaydırılır. Yüz bulunamazsa, standart orta kırpmaya geri döner.
Fotoğraf yüklemeden gradyan yer tutucu görüntüleri oluşturabilir miyim?
Evet. /gradient/{width}/{height}/{from}/{to} uç noktası, gradyan görüntülerini tamamen URL parametrelerinden oluşturur. Yüklenen görüntülere gerek yoktur. Ayrıca /svg/{width}/{height} ile SVG yer tutucuları da oluşturabilirsiniz.
API ile Instagram story boyutu yer tutucu görüntülerini nasıl oluştururum?
Ön ayar uç noktasını kullanın: /preset/instagram-story/{category}. Bu, 1080x1920 bir görüntü döndürür. Optimize edilmiş teslimat için ?format=webp&quality=70 ile ve portre-güvenli kırpma için ?fit=smart ile birleştirin.
PlacePix S3 uyumlu nesne depolamayı destekliyor mu?
Evet. PlacePix, OVHcloud Object Storage, AWS S3, MinIO ve herhangi bir S3 uyumlu sağlayıcı ile çalışır. Ortam değişkenleri aracılığıyla uç nokta, kova, erişim anahtarı ve gizli anahtarı yapılandırın.
Hangi çıktı formatları destekleniyor?
WebP, AVIF, JPEG, PNG, SVG ve base64 JSON. Dosya uzantısı olarak .webp, .avif veya .png kullanın veya sorgu parametresi olarak ?format=webp ekleyin. AVIF en küçük dosyaları üretir; PNG kayıpsızdır.
PlacePix ticari kullanım için ücretsiz mi?
Evet. PlacePix MIT Lisansı altında yayınlanmıştır ve hem kişisel hem de ticari kullanım için ücretsizdir. Kendi barındırılan olduğu için, kullanım limiti yoktur, API anahtarı yoktur ve istek başına faturalama yoktur.