คลังภาพสำหรับ Python 3


154

python-3 คืออะไรใช้แทน PIL สำหรับจัดการรูปภาพ?


คุณตรวจสอบโมดูลสื่อหรือไม่ (สื่อนำเข้า)
inspectorG4dget

@ inspectorG4dget: สื่อไม่ได้อยู่ในไลบรารีมาตรฐานของ python3
banx

ฉันไม่คิดว่า PIL ก็เป็นมาตรฐานเช่นกัน แต่ดูเหมือนว่าฉันผิด
inspectorG4dget

2
@ inspectorG4dget: ไม่ถูกต้อง PIL ไม่ได้อยู่ในไลบรารีมาตรฐาน
Janus Troelsen

หนึ่งควรติดตั้งPillowจาก PyPI ซึ่งควรเป็นแบบหล่นในการแทนที่สำหรับPIL; นี่เป็นแพ็คเกจที่ต้องการใน Python 2 ด้วย
Antti Haapala

คำตอบ:


98

"การส้อม PIL มิตร" หมอนทำงานบนหลามที่ 2 และ 3 ตรวจสอบโครงการ Githubสำหรับเมทริกซ์การสนับสนุนและอื่น ๆ


4
มันเป็นเรื่องที่ยังคงได้รับการพัฒนาอย่างแข็งขันในฐานะ ต.ค. 2014 มีเอกสารที่ดีคุณอาจpip3 install Image(ผมใช้หมอนโดยไม่ทราบ) และคุณ from PIL import Imageนอกจากนี้ยังรองรับแพลตฟอร์มที่สำคัญทั้งหมดในขณะนี้ เมื่อค้นหา PIL สำหรับ python3 นี่เป็นตัวเลือกอย่างแน่นอน
Yosh

19

Christoph Gohlke จัดการเพื่อสร้าง PIL (สำหรับ Windows เท่านั้น) สำหรับรุ่น python สูงถึง 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/

ฉันลองใช้ PIL เวอร์ชันของเขากับ Python 3.2 และจัดการเปิดภาพ / สร้าง / พิกเซล / บันทึกงานทั้งหมด


14

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


7

ณ วันที่ 30 มีนาคม 2012 ฉันได้ลองและล้มเหลวในการเปิด sloonz บน GitHub เพื่อเปิดภาพ ฉันได้มันเพื่อคอมไพล์โอเค แต่มันใช้งานไม่ได้จริง ๆ ฉันพยายามสร้างห้องสมุดของ gohlke และมันก็คอมไพล์ด้วย แต่ไม่สามารถเปิดภาพใด ๆ ได้ มีคนพูดถึง PythonMagick ด้านบน แต่คอมไพล์บน Windows เท่านั้น ดูPythonMagick บน wxPython wikiในวิกิพีเดีย

PIL ได้รับการปรับปรุงล่าสุดในปี 2009 และในขณะที่เว็บไซต์บอกว่าพวกเขากำลังทำงานบนพอร์ต Python 3 เป็นเวลา 3 ปีและรายชื่อผู้รับจดหมายเริ่มหนาวเย็นลง

เพื่อแก้ไขปัญหาการจัดการอิมเมจ Python 3 ของฉันฉันใช้subprocess.call()เพื่อรันคำสั่งเชลล์ ImageMagick วิธีนี้ใช้ได้ผล

ดูเอกสารโมดูลกระบวนการย่อย



6

คุณต้องการห้องสมุดPillowนี่คือวิธีการติดตั้งใน Python 3:

pip3 install Pillow

หากวิธีนี้ใช้ไม่ได้ผลกับคุณ (ควรทำ) ให้ลองทำตามปกติpip:

pip install Pillow

3

ขึ้นอยู่กับสิ่งที่จำเป็นภาพ scikitอาจเป็นทางเลือกที่ดีที่สุดกับกิจวัตรไปไกลกว่า PIL และหมอนรุ่นปัจจุบัน ได้รับการดูแลเป็นอย่างดีอย่างน้อยก็เท่ากับหมอน นอกจากนี้โครงสร้างข้อมูลพื้นฐานมาจาก Numpy และ Scipy ซึ่งทำให้โค้ดทำงานร่วมกันได้อย่างไม่น่าเชื่อ ตัวอย่างที่หมอนไม่สามารถจัดการได้:

การรวมกราฟภูมิภาคของคำคุณศัพท์

เรดอนเปลี่ยน

ฮิสโตแกรมของการไล่ระดับสีเชิง

รูปหลายเหลี่ยมโดยประมาณและแบ่งย่อย

คุณสามารถเห็นพลังในแกลเลอรี่ บทความนี้ให้คำแนะนำที่ดีเกี่ยวกับเรื่องนี้ โชคดี!


0

หากคุณใช้ Python3 คุณสามารถใช้ไลบรารี PILasOPENCV ซึ่งทำงานใน Python 2 และ 3 การเรียกฟังก์ชัน api เหมือนกับใน PIL หรือหมอน แต่ภายในจะทำงานร่วมกับ OpenCV และ numpy เพื่อโหลดบันทึกและจัดการรูปภาพ ไปที่https://github.com/bunkahle/PILasOPENCVหรือติดตั้งด้วย pip PILasOPENCV ฟังก์ชัน PIL ไม่ใช่ทั้งหมดได้รับการจำลอง แต่ฟังก์ชันที่พบบ่อยที่สุดทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.