[Folium] html to png 이미지 파일로 저장하기
📊 𝗕𝗶𝗴𝗗𝗮𝘁𝗮/Visualization

[Folium] html to png 이미지 파일로 저장하기

 

 Html to Png 

Folium 으로 맵을 만들고 나서 보면 html 파일로만 저장을 할 수가 있습니다.

하지만 보고서를 작성할 때 이미지가 필요한데 이때 일일이 캡쳐하기란 지루한 작업입니다.

conda install -c conda-forge pyppeteer
혹은
pip install pyppeteer

이미지 파일로 저장하기 위해서 우선 pyppeteer 을 설치하셔야 합니다.

 

from folium import utilities
from pyppeteer import launch

# 만든 지도를 png 파일로 캡쳐해서 저장하는 함수
async def map_to_png(target, m):
    html = m.get_root().render()
    browser = await launch(headless=True)

    page = await browser.newPage()
    with utilities.temp_html_filepath(html) as fname:
        await page.goto('file://{path}'.format(path=fname))

    img_data = await page.screenshot({'path': f'output/out_{target}.png', 'fullPage': 'true', })
    await browser.close()

해당 코드로 html 페이지를 열어서 스크린샷으로 찍어 png 파일로 저장할 수 있습니다.

path 옵션을 이용해서 경로를 지정할 수 있습니다. 지금 같은 경우는 output 폴더 안에 저장이 됩니다.

 

# 함수 test 허리둘레 지도 시각화
target = '허리둘레'
waste_m = load_map(target) # folium 으로 맵 만들기
await map_to_png(target, waste_m)

함수를 사용할 때는 위와 같이 사용하시면 됩니다.

일단 folium 을 이용해서 맵을 만들고 그걸 return 해서 매개변수로 넣습니다.

await 을 사용해야 합니다.

 

 

 

 

 

+ 코드 출처

https://stackoverflow.com/questions/63166130/python-imgkit-could-not-render-the-whole-page

 

python imgkit could not render the whole page

I what to render this HTML page into jpg: but wkhtmltoimage seems to only render the small part of the page. what's wrong with my code? My code: import imgkit map0 = folium.Map(location=Center,t...

stackoverflow.com

 

 

 

 

 

 

folium png save image save html to png

folium 이미지 파일로 저장하기 png로 저장하기 jpg


 

728x90