使用Python實現下載并保存網絡圖片
引言
今天我們來學習一個簡單有趣的 Python 項目:從網上下載圖片并保存到電腦!你不需要有編程經驗,這篇文章將以最簡單的方式一步步教你完成。
項目目標
下載一張網絡圖片
在電腦上顯示圖片
保存圖片到本地文件
準備工作
我們需要用到兩個 Python 庫:
Pillow (PIL):用于處理圖片。
Requests:用于從網上獲取數據。
如果你還沒有安裝它們,可以在終端運行以下命令:
pip install pillow requests
代碼分解和講解
我們將代碼分成幾個簡單的部分。
1. 從網絡加載圖片
這個函數負責從指定的 URL 加載圖片,并返回一個圖片對象。
from PIL import Image
import requests
from typing import Optional
def load_image_from_url(url: str) -> Optional[Image.Image]:
"""
從指定的URL加載圖片并返回圖片對象。
參數:
url (str): 圖片的URL地址。
返回:
Optional[Image.Image]: 如果加載成功,返回圖片對象;否則返回 None。
"""
try:
# 從URL獲取圖片數據
with requests.get(url, stream=True) as response:
response.raise_for_status() # 檢查請求是否成功
return Image.open(response.raw)
except requests.exceptions.RequestException as e:
print(f"網絡請求出錯: {e}")
except IOError as e:
print(f"圖片處理出錯: {e}")
return None
關鍵點:
我們用 requests.get 獲取圖片數據,并用 with 自動管理資源。
如果有網絡問題,raise_for_status() 會拋出錯誤,幫助我們發(fā)現問題。
Image.open 將圖片數據轉換為可以處理的圖片對象。
2. 保存圖片到本地
這個函數將圖片保存到你指定的路徑。
def save_image(image: Image.Image, file_path: str) -> None:
"""
保存圖片到指定路徑。
參數:
image (Image.Image): 要保存的圖片對象。
file_path (str): 保存路徑。
"""
try:
image.save(file_path)
print(f"圖片已保存為 {file_path}")
except IOError as e:
print(f"圖片保存出錯: {e}")
關鍵點:
如果保存時出現問題,比如路徑錯誤,IOError 會提示你。
3. 主程序邏輯
這是整個程序的入口。
if __name__ == "__main__":
# 定義圖片的URL和保存路徑
url = "https://images.pexels.com/photos/531294/pexels-photo-531294.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"
local_file_path = "downloaded_image.jpg"
# 加載圖片
image = load_image_from_url(url)
if image:
# 顯示圖片
image.show()
# 保存圖片
save_image(image, local_file_path)
運行結果
程序會下載并顯示圖片。
圖片會被保存到你指定的位置,比如當前文件夾下的 downloaded_image.jpg。
總結
這段代碼展示了如何用 Python 完成一個小項目。它既簡單又實用,是初學者學習編程的好例子。
到此這篇關于使用Python實現下載并保存網絡圖片的文章就介紹到這了,更多相關Python下載保存網絡圖片內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解
這篇文章主要介紹了Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
python神經網絡TensorFlow簡介常用基本操作教程
這篇文章主要介紹了python神經網絡入門TensorFlow簡介常用基本操作教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11
python 判斷l(xiāng)inux進程,并殺死進程的實現方法
今天小編就為大家分享一篇python 判斷l(xiāng)inux進程,并殺死進程的實現方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python基于hashlib模塊的文件MD5一致性加密驗證示例
這篇文章主要介紹了Python基于hashlib模塊的文件MD5一致性加密驗證,涉及Python使用hashlib模塊進行字符串與文件的MD5加密驗證操作相關實現技巧,需要的朋友可以參考下2018-02-02

