使用Python实现下载并保存网络图片

 更新时间:2024年12月24日 09:32:38   作者:engchina  
这篇文章主要为大家详细介绍了如何使用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() 会抛出错误,帮助我们发现问题。

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下载保存网络图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于wxPython的GUI实现输入对话框(2)

    基于wxPython的GUI实现输入对话框(2)

    这篇文章主要为大家详细介绍了基于wxPython的GUI实现输入对话框的第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Python中requests库的学习方法详解

    Python中requests库的学习方法详解

    这篇文章主要为大家详细介绍了Python中requests库的学习方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 关于PyCharm安装后修改路径名称使其可重新打开的问题

    关于PyCharm安装后修改路径名称使其可重新打开的问题

    这篇文章主要介绍了关于PyCharm安装后修改路径名称使其可重新打开的问题,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Python3内置函数chr和ord实现进制转换

    Python3内置函数chr和ord实现进制转换

    这篇文章主要介绍了Python3内置函数chr和ord实现进制转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Cpython编译后再使用Pyinstaller打包的详细教程

    Cpython编译后再使用Pyinstaller打包的详细教程

    pyinstaller是一个第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,这篇文章主要介绍了Cpython编译后再使用Pyinstaller打包的详细教程,需要的朋友可以参考下
    2023-11-11
  • Python3 Tkinter选择路径功能的实现方法

    Python3 Tkinter选择路径功能的实现方法

    今天小编就为大家分享一篇Python3 Tkinter选择路径功能的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python可视化 matplotlib画图使用colorbar工具自定义颜色

    python可视化 matplotlib画图使用colorbar工具自定义颜色

    这篇文章主要介绍了python可视化 matplotlib画图使用colorbar工具自定义颜色,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用Pandas选择数据子集的方法示例

    使用Pandas选择数据子集的方法示例

    有时数据读入后并不是对整体数据进行分析,而是数据中的部分子集,所以,该如何根据特定的条件实现数据子集的获取将是本节的主要内容,本文给大家介绍了使用Pandas选择数据子集的方法示例,需要的朋友可以参考下
    2024-03-03
  • Matplotlib绘图基础之地图绘制详解

    Matplotlib绘图基础之地图绘制详解

    如果分析的数据与地域相关,那么,把分析结果结合地图一起展示的话,会让可视化的效果得到极大的提升,下面就来讲讲如何利用Matplotlib一步步通过地图来展示分析结果吧
    2023-08-08
  • python pprint模块中print()和pprint()两者的区别

    python pprint模块中print()和pprint()两者的区别

    这篇文章主要介绍了python pprint模块中print()和pprint()两者的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论