최신 웹 개발에서 이미지 압축 및 처리는 페이지 로딩 속도 및 사용자 경험을 향상시키는 데 중요한 링크입니다. 이미지 처리에는 일반적으로 많은 수의 IO 작업 및 계산이 포함되므로 기존의 동기화 처리 방법은 종종 비 효율성과 느린 응답으로 이어집니다.
비동기식 코 루틴은 IO를 기다리는 동안 다른 작업을 수행 할 수있는 이벤트 중심 모델을 채택하여 CPU 활용을 크게 향상시킬 수 있습니다. 동기 차단과 비교하여 비동기 코 루틴은 이미지 처리의 동시성 및 응답 속도를 효과적으로 향상시킬 수 있으며 이미지 처리 흐름을 최적화하기위한 이상적인 선택입니다.
이 예제는 Python을 기반으로하며 Asyncio를 사용하여 비동기 코 루틴을 구현하며 이미지 처리 용 베개를 결합합니다. 설치 종속성 :
PIP Asyncio를 설치하십시오 PIP 설치 베개
PIL 가져 오기 이미지에서 Async def compress_image (file_path, output_path) : # 이미지 파일 열기 이미지 = image.open (file_path) # 압축 이미지로 저장, 압축 매개 변수 설정 이미지.
Asyncio 가져 오기 Async def process_images (file_paths) : 작업 = [] file_paths의 file_path의 경우 : # 비동기적인 태스크 생성 작업 = asyncio.create_task (compress_image (file_path, "output/" + file_path)) tasks.append (작업) # 동시에 모든 작업이 Asyncio.gather (*작업)를 기다립니다.
__name__ == "__main__"인 경우 : file_paths = [ "image1.jpg", "image2.jpg", "image3.jpg"]]] loop = asyncio.get_event_loop () loop.run_until_complete (process_images (file_paths)) loop.close ()
Python의 Asyncio 및 Pillow 라이브러리와 결합 된 비동기 코 루틴 개발을 통해 이미지 압축 및 처리의 효율성을 크게 향상시킬 수 있습니다. 비동기 동시 처리를 통해 IO가 대기하는 동안 프로그램이 차단되지 않으며 효과적으로 리소스를 활용하고 전반적인 응답 속도를 향상시킵니다. 이 예제가 이미지 처리를 최적화하기 위해 비동기식 코 루틴 기술을 이해하고 적용하는 데 도움이되기를 바랍니다.
참고 : 위의 코드는 기본 데모이며 실제 프로젝트의 요구에 따라 최적화 계획을 조정할 수 있습니다.