[python] aiohttp를 사용하여 이미지 다운로드 및 처리하기

이 기사에서는 aiohttp 라이브러리를 사용하여 이미지를 다운로드하고 처리하는 방법을 알아보겠습니다.

목차

필요 라이브러리 설치

aiohttp 라이브러리는 비동기 HTTP 요청을 처리하는 데 사용됩니다. 다음 명령을 사용하여 라이브러리를 설치할 수 있습니다:

pip install aiohttp

이미지 다운로드

이제 aiohttp를 사용하여 이미지를 다운로드 해보겠습니다. 다음 예제 코드를 참고하세요:

import aiohttp
import asyncio

async def download_image(url, save_path):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            with open(save_path, 'wb') as f:
                while True:
                    chunk = await response.content.read(1024)
                    if not chunk:
                        break
                    f.write(chunk)

async def main():
    url = "https://example.com/image.jpg"
    save_path = "image.jpg"
    await download_image(url, save_path)

asyncio.run(main())

위 코드는 download_image 함수를 정의하고, aiohttp를 사용하여 주어진 URL에서 이미지를 다운로드하고 지정된 경로에 저장합니다. 마지막으로, main 함수를 실행하여 이미지를 다운로드합니다.

이미지 처리

이제 이미지를 다운로드하였으니, 이미지를 처리하는 방법에 대해 알아보겠습니다. 예를 들어, Pillow 라이브러리를 사용하여 이미지 크기를 변경하는 코드를 추가해보겠습니다:

from PIL import Image

def resize_image(image_path, new_size):
    with Image.open(image_path) as image:
        resized_image = image.resize(new_size)
        resized_image.save("resized_image.jpg")

resize_image("image.jpg", (800, 600))

위 코드는 resize_image 함수를 정의하고, Pillow 라이브러리를 사용하여 이미지 크기를 변경합니다. 변경된 이미지는 “resized_image.jpg”로 저장됩니다.

결과 확인

이제 이미지를 다운로드하고 처리하는 방법을 알게 되었습니다. 예제 코드를 실행하여 이미지를 다운로드하고 크기를 변경한 후 결과를 확인할 수 있습니다.