HTML2Image is a lightweight Python package that acts as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files.

Overview

html2image logo

HTML2Image

PyPI PyPI PyPI GitHub GitHub

HTML2Image is a lightweight Python package that acts as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files.

This package has been tested on Windows, Ubuntu (desktop and server) and MacOS. It is currently in a work in progress stage. If you encounter any problem or difficulties while using it, feel free to open an issue on the GitHub page of this project. Feedback is also welcome!

Principle

Most web browsers have a Headless Mode, which is a way to run them without displaying any graphical interface. Headless mode is mainly used for automated testings but also comes in handy if you want to take screenshots of web pages that are exact replicas of what you would see on your screen if you were using the browser yourself.

However, for the sake of taking screenshots, headless mode is not very convenient to use. HTML2Image aims to hide the inconveniences of the browsers' headless modes while adding useful features such as allowing to create an image from as little as a string.

For more information about headless modes :

Installation

HTML2Image is published on PyPI and can be installed through pip:

pip install --upgrade html2image

In addition to this package, at least one of the following browsers must be installed on your machine :

  • Google Chrome (Windows, MacOS)
  • Chromium Brower (Linux)

Usage

First, import the package and instantiate it

from html2image import Html2Image
hti = Html2Image()
Multiple arguments can be passed to the constructor (click to expand):
  • browser : Browser that will be used, set by default to 'chrome' (the only browser supported by HTML2Image at the moment)
  • browser_executable : The path or the command that can be used to find the executable of a specific browser.
  • output_path : Path to the folder to which taken screenshots will be outputed. Default is the current working directory of your python program.
  • size : 2-Tuple reprensenting the size of the screenshots that will be taken. Default value is (1920, 1080).
  • temp_path : Path that will be used to put together different resources when screenshotting strings of files. Default value is %TEMP%/html2image on Windows, and /tmp/html2image on Linux and MacOS.

Example:

hti = Html2Image(size=(500, 200))

You can also change these values later:

hti.size = (500, 200)

Then take a screenshot

The screenshot method is the basis of this package, most of the time, you won't need to use anything else. It can take screenshots of a lot of things :

  • URLs via the url parameter;
  • HTML and CSS files via the html_file and css_file parameters;
  • HTML and CSS strings via the html_str and css_str parameters;
  • and "other" types of files via the other_file parameter (try it with .svg files!).

And you can also (optional):

  • Change the size of the screenshots using the size parameter;
  • Save the screenshots as a specific name using the save_as parameter.

N.B. : The screenshot method returns a list containing the path(s) of the screenshot(s) it took.

A few examples

  • URL to image
hti.screenshot(url='https://www.python.org', save_as='python_org.png')
  • HTML & CSS strings to image
An interesting title This page will be red""" css = "body {background: red;}" hti.screenshot(html_str=html, css_str=css, save_as='red_page.png') ">
html = """

An interesting title

This page will be red"""
css = "body {background: red;}" hti.screenshot(html_str=html, css_str=css, save_as='red_page.png')
  • HTML & CSS files to image
hti.screenshot(
    html_file='blue_page.html', css_file='blue_background.css',
    save_as='blue_page.png'
)
  • Other files to image
hti.screenshot(other_file='star.svg')
  • Change the screenshots' size
hti.screenshot(other_file='star.svg', size=(500, 500))

Click to show all the images generated with all the code above sample_url_to_img.png sample_strings_to_img sample_files_to_img sample_other_to_img sample_other_50_50

  • Change the directory to which the screenshots are saved
hti = Html2Image(output_path='my_screenshot_folder')

OR

hti.output_path = 'my_screenshot_folder'

N.B. : the output path will be changed for all future screenshots.


Use lists in place of any parameters while using the screenshot method

  • Screenshot multiple objects using only one filename, or one filename per file:
# create three files from one filename
hti.screenshot(html_str=['A', 'B', 'C'], save_as='ABC.png')
# outputs ABC_0.png, ABC_1.png, ABC_2.png

# create three files from from different filenames
hti.screenshot(html_str=['A', 'B', 'C'], save_as=['A.png', 'B.png', 'C.png'])
# outputs A.png, B.png, C.png
  • Take multiple screenshots with the same size
# take four screenshots with a resolution of 100*50
hti.screenshot(
    html_str=['A', 'B', 'C', 'D']
    size=(100, 50)
)
  • Take multiple screenshots with different sizes
# take four screenshots with different resolutions from three given sizes
hti.screenshot(
    html_str=['A', 'B', 'C', 'D'],
    size=[(100, 50), (100, 100), (50, 50)]
)
# respectively 100*50, 100*100, 50*50, 50*50
# if not enough sizes are given, the last size in the list will be repeated
  • Apply CSS string(s) to multiple HTML string(s)
# screenshot two html strings and apply css strings on both
hti.screenshot(
    html_str=['A', 'B'],
    css_str='body {background: red;}'
)

# screenshot two html strings and apply multiple css strings on both
hti.screenshot(
    html_str=['A', 'B'],
    css_str=['body {background: red;}', 'body {font-size: 50px;}']
)

# screenshot one html string and apply multiple css strings on it
hti.screenshot(
    html_str='A',
    css_str=['body {background: red;}', 'body {font-size: 50px;}']
)

  • Retrieve the path of the generated file(s)
    The screenshot method returns a list containing the path(s) of the screenshot(s):
>> ['D:\\myFiles\\letters_0.png', 'D:\\myFiles\\letters_1.png', 'D:\\myFiles\\letters_2.png'] ">
paths = hti.screenshot(
    html_str=['A', 'B', 'C'],
    save_as="letters.png",
)

print(paths)
# >>> ['D:\\myFiles\\letters_0.png', 'D:\\myFiles\\letters_1.png', 'D:\\myFiles\\letters_2.png']

Change browser flags

In some cases, you may need to change the flags that are used to run the headless mode of a browser.

Flags can be used to:

  • Change the default background color of the pages;
  • Hide the scrollbar;
  • Add delay before taking a screenshot;
  • Allow you to use Html2Image when you're root, as you will have to specify the --no-sandbox flag;

You can find the full list of Chrome / Chromium flags here.

There are two ways to specify custom flags:

# At the object instanciation
hti = Html2image(custom_flags=['--my_flag', '--my_other_flag=value'])

# Afterwards
hti.browser.flags = ['--my_flag', '--my_other_flag=value']
  • Flags example use-case: adding a delay before taking a screenshot

With Chrome / Chromium, screenshots are fired directly after there is no more "pending network fetches", but you may sometimes want to add a delay before taking a screenshot, to wait for animations to end for example. There is a flag for this purpose, --virtual-time-budget=VALUE_IN_MILLISECONDS. You can use it like so:

hti = Html2Image(
    custom_flags=['--virtual-time-budget=10000', '--hide-scrollbars']
)

hti.screenshot(url='http://example.org')
  • Default flags

For ease of use, some flags are set by default. However default flags are not used if you decide to specify custom_flags or change the value of browser.flags:

# Taking a look at the default flags
>>> hti = Html2Image()
>>> hti.browser.flags
['--default-background-color=0', '--hide-scrollbars']

# Changing the value of browser.flags gets rid of the default flags.
>>> hti.browser.flags = ['--1', '--2']
>>> hti.browser.flags
['--1', '--2'] 

# Using the custom_flags parameter gets rid of the default flags.
>>> hti = Html2Image(custom_flags=['--a', '--b'])
>>> hti.browser.flags
['--a', '--b']

Using the CLI

HTML2image comes with a Command Line Interface which you can use to generate screenshots from files and urls on the go.

The CLI is a work in progress and may be subject to changes. You can call it by typing hti or html2image into a terminal.

argument description example
-h, --help Shows the help message hti -h
-U, --urls Screenshots a list of URLs hti -U https://www.python.org
-H, --html Screenshots a list of HTML files hti -H file.html
-C, --css Attaches a CSS files to the HTML ones hti -H file.html -C style.css
-O, --other Screenshots a list of files of type "other" hti -O star.svg
-S, --save-as A list of the screenshot filename(s) hti -O star.svg -S star.png
-s, --size A list of the screenshot size(s) hti -O star.svg -s 50,50
-o, --output_path Change the output path of the screenshots (default is current working directory) hti star.svg -o screenshot_dir
-q, --quiet Disable all CLI's outputs hti --quiet
-v, --verbose More details, can help debugging hti --verbose
--chrome_path Specify a different chrome path
--temp_path Specify a different temp path (where the files are loaded)

... now within a Docker container !

You can also test the package and the CLI without having to install everything on your local machine, via a Docker container.

  • First git clone this repo
  • cd inside it
  • Build the image : docker build -t html2image .
  • Run and get inside the container : docker run -it html2image /bin/bash

Inside that container, the html2image package as well as chromium are installed.

You can load and execute a python script to use the package, or simply use the CLI.

On top of that, you can also use volumes to bind a container directory to your local machine directory, allowing you to retrieve the generated images, or even load some resources (HTML, CSS or Python files).

Testing

Only basic testing is available at the moment. To run tests, install the requirements (Pillow) and run PyTest at the root of the project:

pip install -r requirements-test.txt
python -m pytest

FAQ

  • Can I automatically take a full page screenshot?
    Sadly no, it is not easily possible. Html2Image relies on the headless mode of Chrome/Chromium browsers to take screenshots and there is no way to "ask" for a full page screenshot at the moment. If you know a way to take one (by estimating the page size for example) I would be happy to see it, so please open an issue or a discussion!

  • Can I add delay before taking a screenshot?
    Yes you can, please take a look at the Change browser flags section of the readme.

  • Can I speed up the screenshot taking process?
    Yes, when you are taking a lot of screenshots, you can achieve better "performances" using Parallel Processing or Multiprocessing methods. You can find an example of it here.

  • Can I make a cookie modal disappear?
    Yes and no. No because there is no options to do it magically and extensions are not supported in headless Chrome (The I don't care about cookies extension would have been useful in this case). Yes because you can make any element of a page disappear by retrieving its source code, modifying it as you wish, and finally screenshotting the modified source code.

TODO List

  • A nice CLI (currently in a WIP state).
  • Support of other browsers (such as Firefox when their screenshot feature will work).
  • PDF generation?
  • Contributing, issue templates, pull request template, code of conduct.

If you see any typos or notice things that are odly said, feel free to create an issue or a pull request.

Comments
  • Not Getting Image

    Not Getting Image

    Python 3.9.5 html2image 2.0.1

    I'm using Chrome heroku buildpack

    from html2image import Html2Image
    hti = Html2Image()
    # hti.chrome_path = "/opt/google/chrome/chrome"
    hti.chrome_path = "/app/.apt/usr/bin/google-chrome"
    html = """<h1> An interesting title </h1> This page will be red"""
    css = "body {background: red;}"
    
    file = hti.screenshot(html_str=html, css_str=css, save_as='red_page.png')
    

    Its Not saving Image + No error logs

    @vgalin Thanks

    opened by 1Danish-00 8
  • Open multiple tabs is only supported when remote debugging is enabled

    Open multiple tabs is only supported when remote debugging is enabled

    from html2image import Html2Image
    hti = Html2Image()
    
    hti.browser.flags = ['no-sandbox']
    hti.output_path = root+'/x/'
      hti.screenshot(
        html_file=root+'/x/x.html',
        save_as='plot_'+str(i)+'.png'
    )
    
    1. Running without flags gives me the following error Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
    2. With --no-sandbox tag, I get a different error Open multiple tabs is only supported when remote debugging is enabled.

    Any idea how to fix this?

    opened by aneeshpanoli 7
  • Heroku Deployment

    Heroku Deployment

    How to deploy Django project that uses this package to take screenshots on Heroku? It throws error that it cannot find Google Chrome. Can you please help if it can be used on Heroku? @vgalin

    opened by ashutoshkrris 5
  • Cannot find images

    Cannot find images

    Hi!

    I m trying to save a local HTML file as an image but the figures inside are missing. Would you please take a look at this?

    >>> hti.screenshot(html_file='index.html', save_as='out.png') and the file hierarchy looks like this, figures the index.html is referring are stored under images/:

    drwxr-sr-x. 3 kaiwkh ivc   4096 May 25 11:10 ..
    -rw-------. 1 kaiwkh ivc  60152 May 25 11:15 out.png
    drwxr-sr-x. 2 kaiwkh ivc  49152 May 25 11:23 images
    -rw-r--r--. 1 kaiwkh ivc 317090 May 25 11:23 index.html
    drwxr-sr-x. 3 kaiwkh ivc     69 May 25 11:35 .
    
    

    The output image doesn't contain those images: image

    Thanks!

    opened by wangkaihong 5
  • Capture screenshot is disabled when remote debugging is enabled.

    Capture screenshot is disabled when remote debugging is enabled.

    hti = Html2Image(custom_flags=['--disable-remote-debugging', '--no-sandbox'])  
          
      try: 
          hti.screenshot(html_file='index1.html',
                        save_as='Image-1.jpg',
                        size=(1200, 1200)
                        )
    
          hti.screenshot(html_file='index2.html',
                          save_as='Image-2.jpg',
                          size=(1200, 1200)
        )
      except:
        print(e)
      
      return ['Image-1.jpg', 'Image-2.jpg']
    
    opened by amandugar 4
  • Getting blank png from HTML

    Getting blank png from HTML

    I tried from command line and from Python as well, I always get a blank PNG file.

    Example:

    $ hti -v -H kaya.al.html -S op.png -s 1024,768 -o ~/tmp/hti
    
    args = Namespace(browser=None, chrome_path=None, css=[], html=['kaya.al.html'], other=[], output_path='<home>/tmp/hti', quiet=False, save_as=['op.png'], size=[(1024, 768)], temp_path=None, url=[], verbose=True)
    [0217/100850.406393:WARNING:bluez_dbus_manager.cc(248)] Floss manager not present, cannot set Floss enable/disable.
    [0217/100850.417779:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
    [0217/100850.565404:INFO:headless_shell.cc(659)] Written to file <home>/tmp/hti/op.png.
    Created 1 file(s):
    	<home>/tmp/hti/op.png
    
    
    opened by tilusnet 4
  • FileNotFoundError: [Errno 2] No such file or directory: 'google-chrome': 'google-chrome'

    FileNotFoundError: [Errno 2] No such file or directory: 'google-chrome': 'google-chrome'

    Hi All, I need your help.

    I install google chrome on server CentOs but my program notice error

    Traceback (most recent call last):
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 2464, in __call__
        return self.wsgi_app(environ, start_response)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
        response = self.handle_exception(e)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 272, in error_router
        return original_handler(e)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/_compat.py", line 38, in reraise
        raise value.with_traceback(tb)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
        response = self.full_dispatch_request()
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 272, in error_router
        return original_handler(e)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
        reraise(exc_type, exc_value, tb)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/_compat.py", line 38, in reraise
        raise value.with_traceback(tb)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
        rv = self.dispatch_request()
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
        return self.view_functions[rule.endpoint](**req.view_args)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 468, in wrapper
        resp = resource(*args, **kwargs)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask/views.py", line 89, in view
        return self.dispatch_request(*args, **kwargs)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 583, in dispatch_request
        resp = meth(*args, **kwargs)
      File "/home/python_crawler/backend/api-python/api.py", line 129, in post
        hti = Html2Image()
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/html2image/html2image.py", line 163, in __init__
        self.chrome_path = chrome_path
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/html2image/html2image.py", line 176, in chrome_path
        self._chrome_path = _find_chrome(value)
      File "/home/python_crawler/backend/api-python/.venv/lib/python3.7/site-packages/html2image/html2image.py", line 60, in _find_chrome
        ["google-chrome", "-version"]
      File "/usr/local/lib/python3.7/subprocess.py", line 395, in check_output
        **kwargs).stdout
      File "/usr/local/lib/python3.7/subprocess.py", line 472, in run
        with Popen(*popenargs, **kwargs) as process:
      File "/usr/local/lib/python3.7/subprocess.py", line 775, in __init__
        restore_signals, start_new_session)
      File "/usr/local/lib/python3.7/subprocess.py", line 1522, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'google-chrome': 'google-chrome'
    
    opened by tranmanhhung 4
  • Problem with sizing

    Problem with sizing

    Hello guys,

    I'm trying to resize an image, my monitor is 1920x1080p but I want to crop the image.

    For example: hti.screenshot(html_file = 'index.html', save_as = 'out.jpg', size = (600, 600))

    Where starts to crop the image size parameter? My screenshot is getting cropped badly and only is working if I set my full screen resolution.

    Kind regards

    opened by aramonpa 3
  • Couldn't find a chrome executable. please specify it yourself

    Couldn't find a chrome executable. please specify it yourself

    When this package is highly dependent on chrome executable, it should be written very clearly that where should we mention chrome executable of driver path?

    Currently it is not mentioned anywhere. can someone tell me please where can we mention our own chrome binary?

    opened by Enigmaderockz 2
  • Unable to import package htm2image

    Unable to import package htm2image

    I am writing below code from the given details but still getting error. I am using python 3.7.5 from html2image import Html2Image hti = Html2Image() hti.screenshot(url='https://www.python.org', save_as='python_org.png')

    error: Traceback (most recent call last): File "main.py", line 1, in <module> from html2image import Html2Image ModuleNotFoundError: No module named 'html2image'

    opened by Enigmaderockz 2
  • Convert HTML to image in base64

    Convert HTML to image in base64

    Hello, there is some way that html2image gets the image in memory or base64?

    That is to say that instead of saving the image in a file I generate a string with the image in base64 code

    from html2image import Html2Image
    hti = Html2Image()
    
    imgcode64 = hti.screenshot(html_str=render_template('profile/_riesgoimg.html'))
    
    print(f'Se convirtio a imagen:{imgcode64}')
    

    In this case I would expect the imgcode64 variable to have something like the following:

    imgcode64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAAoCAYAAABXadAKAAAALnRFWHRDcmVhdGlvbiBUaW1lAHZpZS4gMTkgZmViLiErkJggg=="

    Regards

    opened by DTHerrera 2
  • changes needed for Debian on GH Codespaces

    changes needed for Debian on GH Codespaces

    When attempting to build this docker image on Debian inside Github Codespaces I got an error about Poetry v1.2 being deprecated and to switch to this new recommended install method. After these changes it would build successfully.

    I'm confident the Poetry install change will work most everywhere. I'm less sure about the change for the RUN $HOME paths.

    opened by maphew 0
  • Blank white output

    Blank white output

    Hi, Can I using html2image on Ubuntu Server 20.4? I am runnig with custom parameter "hti.browser.flags = ['--no-sandbox']" but output is blank png. Without --no-sandbox parameter I get this error: Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

    opened by farzadkb 1
  • python script run in docker with error:ERROR:headless_shell.cc(434)] Abnormal renderer termination.

    python script run in docker with error:ERROR:headless_shell.cc(434)] Abnormal renderer termination.

    DockerFile: ` FROM python:3.7 EXPOSE 9567 WORKDIR /app COPY . /app

    RUN echo "Acquire::Check-Valid-Until "false";\nAcquire::Check-Date "false";" | cat > /etc/apt/apt.conf.d/10no--check-valid-until RUN sed -i 's|security.debian.org/debian-security|mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list RUN sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list

    RUN apt-get clean RUN apt-get update -y && apt-get install -y icc-profiles-free RUN apt-get update -y && apt-get install -y chromium

    RUN echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox --disable-gpu"' >> /etc/chromium.d/default-flags

    RUN echo " \n =============HTML2IMAGE============= \n Welcome to the html2image CLI container ! \n Type html2image -h for help :)" >> /etc/motd RUN echo "clear" >> /root/.bashrc RUN echo "cat /etc/motd" >> /root/.bashrc

    RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple RUN pip install -r requirements.txt `

    requirements.txt ` Pillow

    pytest

    html2image `

    python script

    ` from html2image import Html2Image hti = Html2Image(custom_flags=['--no-sandbox','--disable-gpu', '--disable-software-rasterizer']) hti.screenshot(url='http://www.python.org', save_as='python_org.png', size = (1500, 13000))

    `

    error info:

    image

    [1026/042946.265913:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory [1026/042946.266046:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory [1026/042946.268083:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present, cannot set Floss enable/disable. [1026/042946.271534:ERROR:gpu_init.cc(521)] Passthrough is not supported, GL is disabled, ANGLE is [1026/043157.712559:ERROR:headless_shell.cc(434)] Abnormal renderer termination.

    opened by taroyutao 0
  • how to plot large html visualization to image

    how to plot large html visualization to image

    Hi,

    I have a large html visualization to plot to an image. any idea how to get that to work?

    
    from html2image import Html2Image
    hti = Html2Image()
    
    #hti.browser.flags.extend(['--disable-software-rasterizer', '--disable-gpu']) <-- does not work
    hti.screenshot(
        html_file='model_plot.html',
        save_as='blue_page.png',
        size=(4000, 40000) # may need to increase to 50000 or 60000 ...
    )
    
    python convert.py
    objc[12926]: Class WebSwapCGLLayer is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libANGLE-shared.dylib (0x7ffb44709948) and /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/106.0.5249.119/Libraries/libGLESv2.dylib (0x10bc7f668). One of the two will be used. Which one is undefined.
    [1021/072630.558755:ERROR:command_buffer_proxy_impl.cc(128)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
    [1021/072634.255316:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072634.260627:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072634.260987:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072634.463683:WARNING:crash_report_exception_handler.cc(235)] UniversalExceptionRaise: (os/kern) failure (5)
    [1021/072634.479950:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=5
    [1021/072634.480027:WARNING:gpu_process_host.cc(1276)] The GPU process has crashed 1 time(s)
    objc[12942]: Class WebSwapCGLLayer is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libANGLE-shared.dylib (0x7ffb44709948) and /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/106.0.5249.119/Libraries/libGLESv2.dylib (0x10706b668). One of the two will be used. Which one is undefined.
    [1021/072634.775134:WARNING:gpu_process_host.cc(997)] Reinitialized the GPU process after a crash. The reported initialization time was 225 ms
    [1021/072634.984031:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072634.986238:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072634.986510:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072635.313578:WARNING:crash_report_exception_handler.cc(235)] UniversalExceptionRaise: (os/kern) failure (5)
    [1021/072635.332282:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=5
    [1021/072635.332373:WARNING:gpu_process_host.cc(1276)] The GPU process has crashed 2 time(s)
    objc[12944]: Class WebSwapCGLLayer is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libANGLE-shared.dylib (0x7ffb44709948) and /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/106.0.5249.119/Libraries/libGLESv2.dylib (0x10b811668). One of the two will be used. Which one is undefined.
    [1021/072635.624863:WARNING:gpu_process_host.cc(997)] Reinitialized the GPU process after a crash. The reported initialization time was 229 ms
    [1021/072635.803154:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072635.805006:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072635.805230:ERROR:tile_manager.cc(830)] WARNING: tile memory limits exceeded, some content may not draw
    [1021/072635.966006:WARNING:crash_report_exception_handler.cc(235)] UniversalExceptionRaise: (os/kern) failure (5)
    [1021/072635.980111:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=5
    [1021/072635.980179:WARNING:gpu_process_host.cc(1276)] The GPU process has crashed 3 time(s)
    objc[12946]: Class WebSwapCGLLayer is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libANGLE-shared.dylib (0x7ffb44709948) and /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/106.0.5249.119/Libraries/libGLESv2.dylib (0x120802668). One of the two will be used. Which one is undefined.
    [1021/072636.283871:WARNING:gpu_process_host.cc(997)] Reinitialized the GPU process after a crash. The reported initialization time was 243 ms
    [1021/072636.284229:ERROR:headless_shell.cc(575)] Capture screenshot failed
    
    opened by Arnold1 1
Releases(2.0.1)
Owner
French IT Student
kikuchipy is an open-source Python library for processing and analysis of electron backscatter diffraction (EBSD) patterns

kikuchipy is an open-source Python library for processing and analysis of electron backscatter diffraction (EBSD) patterns. The library builds on the

pyxem 53 Dec 29, 2022
Python QR Code image generator

Pure python QR Code generator Generate QR codes. For a standard install (which will include pillow for generating images), run: pip install qrcode[pil

Lincoln Loop 3.5k Dec 31, 2022
EmbedToolV2 - 2.0 Version of DraKenCodeZ/ImageEmbedTool

EmbedToolV2 - 2.0 Version of DraKenCodeZ/ImageEmbedTool

DraKenCodeZ 1 Dec 07, 2021
Console images in 48 colors, 216 colors and full rgb

console_images Console images in 48 colors, 216 colors and full rgb Full RGB 216 colors 48 colors If it does not work maybe you should change color_fu

Урядов Алексей 5 Oct 11, 2022
A Python3 library to generate dynamic SVGs

The Python library for generating dynamic SVGs using Python3

1 Dec 23, 2021
Image Compression GUI APP Python: PyQt5

Image Compression GUI APP Image Compression GUI APP Python: PyQt5 Use : f5 or debug or simply run it on your ids(vscode , pycham, anaconda etc.) socia

Sourabh Dhalia 1 May 21, 2022
Convert any image into greyscale ASCII art.

Image-to-ASCII Convert any image into greyscale ASCII art.

Ben Smith 12 Jan 15, 2022
Samila is a generative art generator written in Python

Samila is a generative art generator written in Python, Samila let's you create arts based on many thousand points. The position of every single point is calculated by a formula, which has random par

Sepand Haghighi 947 Dec 30, 2022
Python scripts for semi-automated morphometric analysis of atolls from Landsat satellite Imagery.

AtollGeoMorph Python scripts for semi-automated morphometric analysis of atolls from Landsat satellite Imagery. The python scripts included allow user

1 Dec 16, 2022
Photini - A free, easy to use, digital photograph metadata (Exif, IPTC, XMP) editing application for Linux, Windows and MacOS.

A free, easy to use, digital photograph metadata (Exif, IPTC, XMP) editing application for Linux, Windows and MacOS. "Metadata" is said to mea

Jim Easterbrook 120 Dec 20, 2022
Program for analyzing shadows from Cassini images

Moons: An Analysis Module for Vicar Files General This packages/program was created for my bachelor's thesis for the Astronomy department at Universit

Joni 1 Jul 16, 2021
A proof-of-concept implementation of a parallel-decodable PNG format

mtpng A parallelized PNG encoder in Rust by Brion Vibber [email protected] Backgrou

Brion Vibber 193 Dec 16, 2022
A simple image to text converter with GUI!

TEXTEMAGE! Textemage is a quick tool that extracts text from images, it is a Python based GUI program(also available in executable version). This is a

Akascape 5 Oct 26, 2022
Python library for ascii graphics

Python library for ascii graphics

Anton 6 Oct 20, 2021
Python framework for creating and scaling up production of vector graphics assets.

Board Game Factory Contributors are welcome here! See the end of readme. This is a vector-graphics framework intended for creating and scaling up prod

Adam Volný 5 Jul 13, 2022
QR-code Generator with a basic GUI.

Qr_generator_python Qr code generator with a basic GUI. ❔ About the QR-Code-Generator This project Generates QR codes to sites, e-mails and plain text

Tecixck 2 Oct 11, 2021
A Icon Maker GUI Made - Convert your image into icon ( .ico format ).

Icon-Maker-GUI A Icon Maker GUI Made Using Python 3.9.0 . It will take any image and convert it to ICO file, for web site favicon or Windows applicati

Insanecodes 12 Dec 15, 2021
Xmas-Tree-GIF-Tool - Convert any given animated gif file into an animation in GIFT CSV format

This repo is made to participate in Matt Parker's XmasTree 2021 event. Convert a

Aven Zitzelberger 2 Dec 30, 2021
A minimal python script for generating bip39 seed phrases, and corresponding Seed Signer Seed seed phrase qr code ready for offline printing.

A minimal python script for generating bip39 seed phrases, and corresponding Seed Signer Seed seed phrase qr code ready for offline printing.

CypherToad 8 Sep 12, 2022
Image enhancing model for making a blurred image to be somehow clearer than before

This is a very small prject which helps in enhancing the images by taking a Input images. This project has many features like detcting the faces and enhaning the faces itself and also a feature which

3 Dec 03, 2021