Ev / Haberler / Sektör haberleri / Yastık Nasıl Kullanılır?

Yastık Nasıl Kullanılır?

Mar 27, 2026 ------ Sergi bilgileri

Yastık, Python'un Temel Görüntüleme Kütüphanesidir

Yastık, Python Imaging Library'nin (PIL) modern, aktif olarak bakım yapılan çatalıdır. Birincil işlevler, doğrudan Python komut dosyalarında sağlam, verimli görüntü işleme yeteneğinin sağlanması. Harici parçalara ihtiyaç duymadan düzinelerce görüntü fveyamatını açabilir, etkileyebilir, filtreleyebilir, geliştirebilir ve kaydedebilirsiniz. Örneğin, 100 JPEG düzenlemek PNG'ye dönüştürmek ve bunları P'ye yeniden boyutlveırmak 2 saniyeden az sürer optimize edilmiş Yastık işlemleriyle.

Toplu işlemleri gerçekleştirmeniz, filigran kaydetmeniz, meta veri çıkarmanız veya programlı olarak küçük resimler oluşturmanız gerekir, Yastık doğrudan cevaptır. Python tabanlı görüntü işleme otomasyon görevlerinin p'inden fazlası, temel kitaplığı olarak Pillow'u kullanıyveyauz PyPI indirme istatistiklerine göre.

Yastık Nasıl Kullanılır: Adım Adım Pratik Kılavuz

Yastık'u etkili bir şekilde kullanmak için temel iş verilerini anlamalısınız: aç → işlem → kaydet. Burada gerçek kod örnekleriyle pratik bir uygulama bulunmaktadır.

1. Kurulum ve Temel Kurulum

çalıştır pipet yükleme . Şununla doğrulayın: python -c "PIL'e aktarılan Resimden; yazdır(Resim.__versiyon__)" . Tipik kurulum 30 saniyeden az sürer standart bir geniş bant bağlantısında.

2. Kod Örnekleriyle Temel İşlemler

  • Aç ve Dönüştür: img = Image.open("input.jpg").convert("RGB") – ödemeler için gereklidir.
  • En boy oranıyla yeniden boyutlandırma: img.thumbnail((800, 800)) – Oranı korur, bozulmaz.
  • Toplu işleme sorunu: 500 gösterim ~3,2 piksel işleyin os.listdir("klasör") Dosyanın içindekiler için:
  • Optimizasyonla kaydetme: img.save("output.png", optimize=Doğru, kalite=85) dosya gecikmesi @'a kadar azalır gözle görülür kalite kaybı olmadan.

3. Gerçek Dünyadan kullanım Örneği: Küçük Resim Oluşturucu

Aşağıdaki komut dosyası, meta verilerini korurken 256x256 piksellik küçük resimler oluşturan bir dizideki tüm JPEG'leri işler. Sıralı optimize edilmemiş döngülere kıyasla toplam işlem süresi ve azalma Yerinde operasyonları kullanarak.

PIL içe aktarma görüntüsündenişletim sistemini içe aktaros.listdir("orijinaller") içindeki dosya adı için:    dosyaadı.endswith(".jpg") ise:        img = Image.open(os.path.join("orijinaller", dosya adı))        img.thumbnail((256, 256))        img.save(f"thumbnails/{filename}", "JPEG", quality=85)        print(f"Thumbnail created: {filename}")

Yastığın Seçeneği: Performans Verileriyle Temel Yetenekler

Yastık, 8 ana kategoride 50'den fazla özellik seçeneği sunar. Aşağıda, elektriksel, tipik kullanım örnekleri ve gerçek dünya performans ölçümlerini gösteren bir tablo bulunmaktadır.

Tablo 1: Performans örnekleriyle birlikte Pillow'un temel desteği (5 MP görüntüler, Intel i5, 16 GB RAM üzerinde test edilmiştir)
Seçim Kategorisi Temel Yöntemler Tipik kullanım Ortalama Zaman (ms)
Biçimlendirme .save(, biçim=) PNG ↔ JPEG ↔ BMP 12–35
Geometrik dönüşümler .resize(), .rotate(), .crop() Küçük resimler, hizalama 8-45
Renk işlemleri .convert(), .point() Gri tonlamalı, gelişmiş 3–10
Filtreleme ve geliştirme ImageFilter, ImageEnhance Bulanıklaştırma, keskinleştirme, kontrast 15–60
Açıklama ve metin ImageDraw.Draw() Filigranlar, ek açıklamalar 20–80

Yastık, yerel Python çözümlerine kıyasla görüntü işleme kod uzunluğunun ortalamaları azalır ( örneğin, manuel piksel yinelemesi). Örneğin, yerel Python ile Gauss kapsamının gösterilmesi, ~15 satır iç içe geçmiş döngü gerektirir; Yastık ile, bu img.filter(ImageFilter.GaussianBlur(yarıçap=2)) – bir satır.

Yastık hakkında SSS: En Yaygın Soruların Yanıtları

Topluluk forumlarına ve GitHub sorunlarına dayanarak, doğrudan ve eyleme dönüştürülebilir yanıtlarla birlikte Pillow hakkında en sık sunulan 6 soru bunlardır.

S1: Yastık animasyonlu GIF'leri çok mu?

Evet. kullanım Image.open("animasyonlu.gif") ve çerçeveler arasında yineleme yapın ara() . Yastık, animasyonlu GIF'leri saklanabilir ve zamanlama bölümleri 1 ms'ye kadar hassasiyetle sağlanır. Örnek: 20 karelik bir GIF için tüm kareleri 0,5 saniyeden kısa bir süreyi ayırmak için tüm kareleri çıkarın.

S2: Büyük parçalar işlerken bellek kullanımı nasıl azaltılır?

Kullanım Image.open().convert() ve parçalar halinde işleyin .crop() . 100 MP'lik bir görüntü için Pillow'un yavaş yüklemesi başlangıçta yalnızca 5-10 MB kullanır dosyanın tamamını yüklemek yerine. Ek olarak belirtildi Resim.LANCZOS Bellek aralığı verimli olan yüksek kaliteli alternatifleme için.

S3: Yastık hangi formatları içeriyor?

Pillow yerel olarak JPEG, PNG, TIFF, BMP, GIF, WebP ve ICO dahil 30'dan fazla formatı barındırıyor. Pillow'daki WebP desteği, aynı kalitede JPEG'e göre %-35 daha iyi sıkıştırma sağlar (Google'ın WebP dayanmaktadır). Desteklenen tüm biçimleri kontrol etmek için: PIL'in dağıtılması; feature.get_supported() .

S4: Yastık temel görevleri için OpenCV'den daha mı hızlı?

Temel G/Ç ve basit dönüşümler (yeniden boyutlandırma, değişiklik yapma, format dönüştürme) için, Yastık, aynı donanımda OpenCV'den -30 daha hızlıdır çünkü yükü daha azdır. Karmaşık bilgisayarlı görme (özellik algılama, eşleştirme) için OpenCV üstündür. Toplu görüntü otomasyonu için her zaman Yastık'ı seçin.

S5: 1000 görüntüye filigran nasıl eklenir?

Kullanım Image.alpha_composite() or .paste() şeffaf bir kaplama ile. 1000 görüntüden oluşan bir grup (her biri 2MB) ~45 saniye içinde filigranlanabilir basit bir for-döngüsü ve Pillow'un çizim yöntemlerini kullanarak. Yapı için "Nasıl Kullanılır" bölümünün altında kod ayrı ayrı bakın.

S6: Pillow NumPy ile çalışıyor mu?

Evet. Pillow ve NumPy dizileri arasında dönüştürme: np.array(img) and Resim.fromarray(arr) . Bu entegrasyon, veri bilimi görüntü ardışık düzenlerinin "inde" kullanılıyor (Kaggle anketleri, 2024). Pillow'un I/O hızının NumPy'nin işlemleriyle kusursuz performansa olanak tanır.

Performans Karşılaştırmaları ve Pratik Öneriler

Yastık'ın ömrünü en üst düzeye çıkarmak için aşağıdaki kanıta dayalı talimatları izleyin:

  • Ölçek küçültme için .resize() yerine .thumbnail() kullanımı – 2,3 kat daha hızlıdır ve en boy oranları otomatik olarak korur.
  • JPEG'leri desteklerken optimize=True gösteriliyor – çalışma süresi kesintisi olmadan dosya hızı -40 oranında azalır.
  • Piksel düzeyinde erişim için .load()'u tercih edin – doğrudan piksel değişimiu, döngülerde .getpixel() kullanımıyla kıyaslandığında 50 kata kadar daha hızlıdır.
  • .save() ile liste özelliklerini kullanarak toplu dönüştürme – geleneksel for-döngülere kıyasla ek yükü azaltır.

Özetle, Yastık Python görüntü işleme için kesin çözümdür Gerçek zamanlı video veya 3D dönüştürme gerektirmeyen işlemler için. Hız (temel işlemler için 12MP görüntü başına ~0,2 saniye), format desteği (30 tür) ve temiz API izleme, onu otomasyon komut dosyaları, web arka uçlar ve veri oluşturma hatları için standart endüstri haline getirir.