Apa yang digunakan python-3 sebagai ganti PIL untuk memanipulasi Gambar?
Pillow
dari PyPI yang harus menjadi pengganti drop-in untuk PIL
; ini adalah paket yang disukai di Python 2 juga.
Apa yang digunakan python-3 sebagai ganti PIL untuk memanipulasi Gambar?
Pillow
dari PyPI yang harus menjadi pengganti drop-in untuk PIL
; ini adalah paket yang disukai di Python 2 juga.
Jawaban:
Bantal "friendly PIL fork" berfungsi pada Python 2 dan 3 . Lihatlah proyek Github untuk matriks dukungan dan sebagainya.
pip3 install Image
(saya menggunakan bantal tanpa mengetahui), dan Andafrom PIL import Image
. Ini juga mendukung semua platform utama sekarang. Ketika mencari PIL untuk python3, ini jelas merupakan pilihan.
Christoph Gohlke berhasil membangun PIL (hanya untuk Windows) untuk versi python hingga 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/
Saya mencoba versi PIL-nya dengan Python 3.2, dan image open / create / pixel manipulation / save all work.
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.
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 .
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
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:
Anda dapat melihat kekuatannya di galeri . Makalah ini memberikan pengantar yang bagus untuk itu. Semoga berhasil!
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.