Pustaka gambar untuk Python 3


154

Apa yang digunakan python-3 sebagai ganti PIL untuk memanipulasi Gambar?


Apakah Anda memeriksa modul media? (impor media)
inspectorG4dget

@ inspectorG4dget: media tidak ada di perpustakaan standar python3
banx

Saya tidak berpikir bahwa PIL juga standar. Tapi sepertinya saya salah
inspectorG4dget

2
@ inspectorG4dget: Tidak, Anda benar, PIL tidak ada di perpustakaan standar.
Janus Troelsen

Seseorang harus menginstal Pillowdari PyPI yang harus menjadi pengganti drop-in untuk PIL; ini adalah paket yang disukai di Python 2 juga.
Antti Haapala

Jawaban:




14

Qt bekerja sangat baik dengan grafik. Menurut saya itu lebih fleksibel daripada PIL.

Anda mendapatkan semua fitur yang Anda inginkan untuk manipulasi grafik, tetapi ada juga grafik vektor dan bahkan dukungan untuk printer nyata. Dan semua itu dalam satu API yang seragam QPainter,.

Untuk menggunakan Qt, Anda memerlukan Python binding untuknya: PySide atau PyQt4 .
Keduanya mendukung Python 3.

Berikut adalah contoh sederhana yang memuat gambar JPG, menggambar lingkaran jari-jari antialiased 10 pada koordinat (20, 20) dengan warna piksel pada koordinat tersebut dan menyimpan gambar yang dimodifikasi sebagai file PNG:

from PySide.QtCore import *
from PySide.QtGui import *

app = QCoreApplication([])

img = QImage('input.jpg')

g = QPainter(img)
g.setRenderHint(QPainter.Antialiasing)
g.setBrush(QColor(img.pixel(20, 20)))
g.drawEllipse(QPoint(20, 20), 10, 10)
g.end()

img.save('output.png')

Tetapi harap dicatat bahwa solusi ini cukup 'kelas berat', karena Qt adalah kerangka kerja besar untuk membuat aplikasi GUI.


7

Pada 30 Maret 2012, saya telah mencoba dan gagal mendapatkan garpu sloonz di GitHub untuk membuka gambar. Saya mendapatkannya untuk dikompilasi ok, tetapi tidak benar-benar berfungsi. Saya juga mencoba membangun perpustakaan gohlke, dan itu dikompilasi juga tetapi gagal untuk membuka gambar apa pun. Seseorang menyebutkan PythonMagick di atas, tetapi hanya dikompilasi pada Windows. Lihat PythonMagick di wxPython wiki .

PIL terakhir diperbarui pada tahun 2009, dan sementara situs webnya mengatakan mereka bekerja pada port Python 3, sudah 3 tahun, dan milis sudah dingin.

Untuk mengatasi masalah manipulasi gambar Python 3 saya, saya menggunakan subprocess.call()untuk mengeksekusi perintah shell ImageMagick. Metode ini berhasil.

Lihat dokumentasi modul subproses .


6

Anda dapat menggunakan paket mahotas saya di Python 3. Ini berbasis numpy daripada berbasis PIL.


6

Anda ingin pustaka Bantal , berikut ini cara menginstalnya di Python 3:

pip3 install Pillow

Jika itu tidak berhasil untuk Anda (seharusnya), cobalah yang normal pip:

pip install Pillow

3

Tergantung pada apa yang dibutuhkan, scikit-image mungkin menjadi pilihan terbaik, dengan manipulasi melampaui PIL dan versi Bantal saat ini. Sangat terawat dengan baik, setidaknya sebanyak Bantal. Juga, struktur data yang mendasarinya adalah dari Numpy dan Scipy, yang membuat kodenya sangat interoperable. Contoh yang tidak bisa ditangani bantal:

Penggabungan Grafik Adjacency Wilayah

Radon Transform

Histogram gradien berorientasi

Perkirakan dan bagi poligon

Anda dapat melihat kekuatannya di galeri . Makalah ini memberikan pengantar yang bagus untuk itu. Semoga berhasil!


0

Jika Anda menggunakan Python3, Anda juga dapat menggunakan PILasOPENCV pustaka yang bekerja di Python 2 dan 3. Fungsi panggilan api sama seperti di PIL atau bantal tetapi secara internal ia bekerja dengan OpenCV dan numpy untuk memuat, menyimpan dan memanipulasi gambar. Lihat https://github.com/bunkahle/PILasOPENCV atau instal dengan pip instal PILasOPENCV. Tidak semua fungsi PIL telah disimulasikan tetapi fungsi yang paling umum berfungsi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.