2010-11-16 21 views
34

PIL'den (ve this question ile ilgili) bakarak, Resim modlarının kapsamlı bir listesini nereden alabilirim? Görüyorum ki "RGB", "RGBX", kodum "BGRX" bir şekilde, PIL belgelerinde göremediğim bir şekilde olsa bile. Örneğin, hangi PIL'in desteklediğini ve windows API çağrıları ile etkileşim kurarken hangi uygun modların seçileceğini nasıl görebilirim?Görsellerin listesi "modları"

Temel olarak, görüntü modları hakkında çok az şey biliyorum ve sihirli bir şekilde çalışmasını sağlamak için hangi harflerin ekleneceğinden daha fazlasını öğrenmek istiyorum.

cevap

23

Pillow documentation'da (ve ayrıca eski PIL documentation'da da belirtildiği gibi) yazdığı gibi, Unpack.c dosyasına bakmanız gerekir. Listenin sonuna yakın listeyi bulacaksınız. Yastık geçerli ana daldan

Unpack.c: PIL son sürümünü gelen https://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

Unpack.c: http://svn.effbot.org/public/tags/pil-1.1.7/libImaging/Unpack.c BGR "BGR;16" olarak listelenen ve "RGBX" çıkış yaratır

16 bit.

+0

ah güzel aslında dosyayı bulmayı başardım ama bu arama tablosunu bulamadınız. – Claudiu

+0

Lanet olsun, nihayet yaşlanmama izin veren bir şeyi anlamlandırdım. Unpack.c'deki tablonun ikinci sütununda listelenen modlar, dokümanlar * modları * değil, daha ziyade * raw modları * olarak adlandırdıkları şey değildir. ayrım * çiğ modları * modları * iken ') çeşitli Yastık fonksiyonlarının' mode' parametre anladığını ve ('.convert kullanarak dönüştürmek hangi türleridir, Yastık ayrıştırmak dosya türleri olmasıdır. Bağlantılı tablonun yukarısındaki yorumlar, bunların aynı olmadıklarını açıkça belirtmektedir, ancak uzun zamandır başımdan geçmiştir. –

+0

Şimdi anladığım kadarıyla, bu sorunun hem * https://pillow.readthedocs.io/en/3.0.x/handbook/concepts.html#modes (* modları *) ve 'Unpack.c' listesi (* ham modların listesi *) ve aralarındaki farkı açıklar. Diğer Mark, bunu bir düzenleme yoluyla yapmak ister misiniz? Eğer değilse, ama benimle böyle rahat olursan, bana haber ver ve ben de ona ulaşacağım. Aksi takdirde, muhtemelen sadece rakip bir cevap yazacağım. –