使用Python获取网络图片的高宽

在进行网络爬虫开发或者图片处理时,我们经常需要获取网络图片的高宽信息。Python提供了许多库来帮助我们实现这一功能。本文将介绍如何使用Python获取网络图片的高宽。

环境准备

在开始之前,我们需要安装一些必要的库。我们主要使用requests库来获取网络图片,使用Pillow库来处理图片。可以通过以下命令安装这些库:

pip install requests Pillow
  • 1.

获取网络图片

首先,我们需要使用requests库获取网络图片。以下是一个示例代码:

import requests

def download_image(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.content
    else:
        return None
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

这个函数接受一个图片的URL作为参数,然后使用requests.get方法获取图片。如果请求成功,返回图片的内容;否则返回None

处理图片

接下来,我们需要使用Pillow库处理图片,获取其高宽信息。以下是一个示例代码:

from PIL import Image

def get_image_size(image_content):
    image = Image.open(BytesIO(image_content))
    return image.size
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

这个函数接受图片的内容作为参数,使用Pillow库打开图片,然后返回图片的高宽信息。

整合代码

现在我们可以将上述代码整合到一起,实现获取网络图片高宽的功能。以下是一个完整的示例代码:

import requests
from PIL import Image
from io import BytesIO

def download_image(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.content
    else:
        return None

def get_image_size(image_content):
    image = Image.open(BytesIO(image_content))
    return image.size

def get_image_dimensions(url):
    image_content = download_image(url)
    if image_content is not None:
        return get_image_size(image_content)
    else:
        return None

# 测试代码
url = "
dimensions = get_image_dimensions(url)
if dimensions:
    print(f"图片尺寸:宽 {dimensions[0]} 像素,高 {dimensions[1]} 像素")
else:
    print("获取图片失败")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.

流程图

以下是使用mermaid语法绘制的流程图:

flowchart TD
    A[开始] --> B[获取网络图片URL]
    B --> C[使用requests库获取图片]
    C --> D{请求成功?}
    D -- 是 --> E[使用Pillow库处理图片]
    D -- 否 --> F[返回错误信息]
    E --> G[获取图片尺寸]
    G --> H[返回图片尺寸]
    H --> I[结束]

结语

通过上述代码,我们可以方便地获取网络图片的高宽信息。这在进行图片处理或者网络爬虫开发时非常有用。希望本文能够帮助到需要获取网络图片高宽信息的开发者。