python-3 คืออะไรใช้แทน PIL สำหรับจัดการรูปภาพ?
Pillow
จาก PyPI ซึ่งควรเป็นแบบหล่นในการแทนที่สำหรับPIL
; นี่เป็นแพ็คเกจที่ต้องการใน Python 2 ด้วย
python-3 คืออะไรใช้แทน PIL สำหรับจัดการรูปภาพ?
Pillow
จาก PyPI ซึ่งควรเป็นแบบหล่นในการแทนที่สำหรับPIL
; นี่เป็นแพ็คเกจที่ต้องการใน Python 2 ด้วย
คำตอบ:
"การส้อม PIL มิตร" หมอนทำงานบนหลามที่ 2 และ 3 ตรวจสอบโครงการ Githubสำหรับเมทริกซ์การสนับสนุนและอื่น ๆ
pip3 install Image
(ผมใช้หมอนโดยไม่ทราบ) และคุณ from PIL import Image
นอกจากนี้ยังรองรับแพลตฟอร์มที่สำคัญทั้งหมดในขณะนี้ เมื่อค้นหา PIL สำหรับ python3 นี่เป็นตัวเลือกอย่างแน่นอน
Christoph Gohlke จัดการเพื่อสร้าง PIL (สำหรับ Windows เท่านั้น) สำหรับรุ่น python สูงถึง 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/
ฉันลองใช้ PIL เวอร์ชันของเขากับ Python 3.2 และจัดการเปิดภาพ / สร้าง / พิกเซล / บันทึกงานทั้งหมด
Qt ทำงานได้ดีมากกับกราฟิก ในความคิดของฉันมันมีความหลากหลายมากกว่า PIL
คุณได้รับคุณสมบัติทั้งหมดที่คุณต้องการสำหรับการปรับแต่งกราฟิก แต่ยังมีกราฟิกแบบเวกเตอร์และแม้แต่การสนับสนุนเครื่องพิมพ์จริง และทั้งหมดนั้นใน API QPainter
เดียว
หากต้องการใช้ Qt คุณจำเป็นต้องมีงูหลามผูกพันสำหรับมันPySideหรือPyQt4
พวกเขาทั้งสองรองรับ Python 3
ต่อไปนี้เป็นตัวอย่างง่ายๆที่โหลดภาพ JPG วาดวงกลมลบรัศมีที่10ที่พิกัด(20, 20)ด้วยสีของพิกเซลที่อยู่ในพิกัดเหล่านั้นและบันทึกภาพที่แก้ไขเป็นไฟล์ 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')
แต่โปรดทราบว่าโซลูชันนี้ค่อนข้าง 'หนา' เนื่องจาก Qt เป็นกรอบงานขนาดใหญ่สำหรับการสร้างแอปพลิเคชัน GUI
ณ วันที่ 30 มีนาคม 2012 ฉันได้ลองและล้มเหลวในการเปิด sloonz บน GitHub เพื่อเปิดภาพ ฉันได้มันเพื่อคอมไพล์โอเค แต่มันใช้งานไม่ได้จริง ๆ ฉันพยายามสร้างห้องสมุดของ gohlke และมันก็คอมไพล์ด้วย แต่ไม่สามารถเปิดภาพใด ๆ ได้ มีคนพูดถึง PythonMagick ด้านบน แต่คอมไพล์บน Windows เท่านั้น ดูPythonMagick บน wxPython wikiในวิกิพีเดีย
PIL ได้รับการปรับปรุงล่าสุดในปี 2009 และในขณะที่เว็บไซต์บอกว่าพวกเขากำลังทำงานบนพอร์ต Python 3 เป็นเวลา 3 ปีและรายชื่อผู้รับจดหมายเริ่มหนาวเย็นลง
เพื่อแก้ไขปัญหาการจัดการอิมเมจ Python 3 ของฉันฉันใช้subprocess.call()
เพื่อรันคำสั่งเชลล์ ImageMagick วิธีนี้ใช้ได้ผล
คุณสามารถใช้mahotasแพ็คเกจของฉันบน Python 3 มันเป็นแบบ numpy-based แทนที่จะเป็น PIL
คุณต้องการห้องสมุดPillowนี่คือวิธีการติดตั้งใน Python 3:
pip3 install Pillow
หากวิธีนี้ใช้ไม่ได้ผลกับคุณ (ควรทำ) ให้ลองทำตามปกติpip
:
pip install Pillow
ขึ้นอยู่กับสิ่งที่จำเป็นภาพ scikitอาจเป็นทางเลือกที่ดีที่สุดกับกิจวัตรไปไกลกว่า PIL และหมอนรุ่นปัจจุบัน ได้รับการดูแลเป็นอย่างดีอย่างน้อยก็เท่ากับหมอน นอกจากนี้โครงสร้างข้อมูลพื้นฐานมาจาก Numpy และ Scipy ซึ่งทำให้โค้ดทำงานร่วมกันได้อย่างไม่น่าเชื่อ ตัวอย่างที่หมอนไม่สามารถจัดการได้:
คุณสามารถเห็นพลังในแกลเลอรี่ บทความนี้ให้คำแนะนำที่ดีเกี่ยวกับเรื่องนี้ โชคดี!
หากคุณใช้ Python3 คุณสามารถใช้ไลบรารี PILasOPENCV ซึ่งทำงานใน Python 2 และ 3 การเรียกฟังก์ชัน api เหมือนกับใน PIL หรือหมอน แต่ภายในจะทำงานร่วมกับ OpenCV และ numpy เพื่อโหลดบันทึกและจัดการรูปภาพ ไปที่https://github.com/bunkahle/PILasOPENCVหรือติดตั้งด้วย pip PILasOPENCV ฟังก์ชัน PIL ไม่ใช่ทั้งหมดได้รับการจำลอง แต่ฟังก์ชันที่พบบ่อยที่สุดทำงาน