logo

עבודה עם תמונות ב-Python

PIL היא ספריית הדמיה של Python המספקת למפרשן הפיתון יכולות עריכת תמונות. הוא פותח על ידי פרדריק לונד ועוד כמה תורמים. הכרית היא מזלג ה-PIL הידידותי וספרייה קלה לשימוש שפותחה על ידי אלכס קלארק ותורמים אחרים. נעבוד עם כרית.

הַתקָנָה:

  • לינוקס: במסוף לינוקס הקלד את הדברים הבאים:
    pip install Pillow
    התקנת pip באמצעות טרמינל:
    sudo apt-get update  
    sudo apt-get install python-pip
  • חלונות: הורד חבילת הכרית המתאימה בהתאם לגרסת הפיתון שלך. הקפד להוריד לפי גרסת ה-python שברשותך.

אנו נעבוד עם מודול התמונות כאן המספק מחלקה באותו שם ומספק הרבה פונקציות לעבודה על התמונות שלנו. כדי לייבא את מודול התמונות הקוד שלנו צריך להתחיל בשורה הבאה:



 from PIL import Image

פעולות עם תמונות:

  • פתח תמונה מסוימת מנתיב: Python
    #img = Image.open(path)  # On successful execution of this statement # an object of Image type is returned and stored in img variable) try: img = Image.open(path) except IOError: pass # Use the above statement within try block as it can  # raise an IOError if file cannot be found  # or image cannot be opened. 
  • אחזר את גודל התמונה : למופעים של מחלקה Image שנוצרו יש תכונות רבות, אחת מהתכונה השימושית שלה היא גודל. Python
    from PIL import Image filename = 'image.webp' with Image.open(filename) as image: width height = image.size #Image.size gives a 2-tuple and the width height can be obtained 
    כמה מאפיינים נוספים הם: Image.width Image.height Image.format Image.info וכו'.
  • שמור שינויים בתמונה: כדי לשמור את כל השינויים שביצעת בקובץ התמונה אנחנו צריכים לתת נתיב כמו גם פורמט תמונה. Python
    img.save(path format) # format is optional if no format is specified  #it is determined from the filename extension 
  • סיבוב תמונה: סיבוב התמונה צריך זווית כפרמטר כדי לסובב את התמונה. Python
    from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #Angle given img = img.rotate(180) #Saved in the same relative location img.save('rotated_picture.webp') except IOError: pass if __name__ == '__main__': main() 
    סיבוב תמונה בפיתון' src='//techcodeview.com/img/python/71/working-with-images-in-python.webp' title=הערה: קיים דגל הרחבה אופציונלי זמין כאחד מהארגומנטים של שיטת הסיבוב, אשר אם מוגדרת כ-true מרחיבה את תמונת הפלט כדי להפוך אותה לגדולה מספיק כדי להחזיק את התמונה המסובבת במלואה. כפי שניתן לראות בקטע הקוד שלמעלה, השתמשתי בנתיב יחסי שבו התמונה שלי ממוקמת באותה ספרייה כמו קובץ הקוד של python שלי, ניתן להשתמש גם בנתיב מוחלט.
  • חיתוך תמונה: Image.crop(box) לוקח קואורדינטת פיקסלים של 4-טופל (שמאל למעלה מימין למטה) ומחזיר אזור מלבני מהתמונה בשימוש. Python
    from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size area = (0 0 width/2 height/2) img = img.crop(area) #Saved in the same relative location img.save('cropped_picture.webp') except IOError: pass if __name__ == '__main__': main() 
    חיתוך תמונה בפיתון' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-1.webp' title=
  • שינוי גודל תמונה: Image.resize(size)- כאן הגודל מסופק כ-2-tuple רוחב וגובה. Python
    from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size img = img.resize((width/2 height/2)) #Saved in the same relative location img.save('resized_picture.webp') except IOError: pass if __name__ == '__main__': main() 
    שינוי גודל תמונה בפיתון' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-2.webp' title=
  • הדבקת תמונה על תמונה אחרת: הארגומנט השני יכול להיות 2-tuple (מציין את הפינה השמאלית העליונה) או 4-tuple (שמאל למעלה מימין למטה) - במקרה זה הגודל של התמונה המודבקת חייב להתאים לגודל של אזור התיבה הזה או None שהוא שווה ערך ל- (0 0). Python
    from PIL import Image def main(): try: #Relative Path #Image on which we want to paste img = Image.open('picture.webp') #Relative Path #Image which we want to paste img2 = Image.open('picture2.webp') img.paste(img2 (50 50)) #Saved in the same relative location img.save('pasted_picture.webp') except IOError: pass if __name__ == '__main__': main() ##An additional argument for an optional image mask image is also available. 
    הדבקת תמונה על אחר ב-Python' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-3.webp' title=
  • קבלת היסטוגרמה של תמונה: זה יחזיר היסטוגרמה של התמונה שכן רשימת פיקסלים סופרת אחת עבור כל פיקסל בתמונה. (היסטוגרמה של תמונה היא ייצוג גרפי של התפלגות הגוונים בתמונה דיגיטלית. היא מכילה את כל ערכי הבהירות הכלולים בתמונה. היא משרטטת את מספר הפיקסלים עבור כל ערך בהירות. זה עוזר בביצוע הגדרות החשיפה.) מ-PIL import Image Python
    def main(): try: #Relative Path img = Image.open('picture.webp') #Getting histogram of image print img.histogram() except IOError: pass if __name__ == '__main__': main() 
    קבלת-היסטוגרמה-של-תמונה-ב-python-copy' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-4.webp' title=


  • העברת תמונה: תכונה זו נותנת לנו את תמונת המראה של תמונה Python
     from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #transposing image  transposed_img = img.transpose(Image.FLIP_LEFT_RIGHT) #Save transposed image transposed_img.save('transposed.webp') except IOError: pass if __name__ == '__main__': main() 
    העברת תמונה בפיתון' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-5.webp' title=
  • פיצול תמונה ללהקות בודדות: פיצול תמונה במצב RGB יוצר שלוש תמונות חדשות שכל אחת מהן מכילה עותק של הרצועות הבודדות המקוריות. Python
    from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #splitting the image print img.split() except IOError: pass if __name__ == '__main__': main() 
    לפצל תמונה בפיתון' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-6.webp' title=
  • tobitmap: המרת תמונה למפת סיביות X11 (תבנית תמונה בינארית בטקסט רגיל). הוא מחזיר מחרוזת המכילה מפת סיביות X11 ניתן להשתמש בה רק עבור תמונות מצב 1, כלומר תמונות בשחור לבן של פיקסל 1 סיביות. מ-PIL ייבוא ​​תמונה Python
    def main(): try: #Relative Path img = Image.open('picture.webp') print img.mode #converting image to bitmap print img.tobitmap() print type(img.tobitmap()) except IOError: pass if __name__ == '__main__': main() 
    המרת תמונה למפת סיביות ב-python' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-7.webp' title= המרת תמונה ל-bitmao ב-python' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-8.webp' title=
  • יצירת תמונה ממוזערת: שיטה זו יוצרת תמונה ממוזערת של התמונה שנפתחת. זה לא מחזיר אובייקט תמונה חדש הוא מבצע שינוי במקום לאובייקט התמונה שנפתח כעת עצמו. אם אינך רוצה לשנות את אובייקט התמונה המקורי, צור עותק ולאחר מכן החל שיטה זו. שיטה זו גם מעריכה את המתאים לשמור על יחס הגובה-רוחב של התמונה בהתאם לגודל שעבר. מ-PIL ייבוא ​​תמונה Python
    def main(): try: #Relative Path img = Image.open('picture.webp') #In-place modification img.thumbnail((200 200)) img.save('thumb.webp') except IOError: pass if __name__ == '__main__': main() 
    יצירת תמונה ממוזערת של תמונה בפיתון' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-9.webp' title=
צור חידון