It should be at least 128pixels in size but 256+ would be better.
You can use GIMP which is an open source alternative to Photoshop that can download for from the project's website. The disadvantage of using the sites it that you usually can't control the sizes the or image quality of the individual sizes within the icon.
Yes you can use websites as some people are recommending in their answers but if you learn how to do it right, you can probably do it yourself in the same amount of time it takes to browse to the site, upload the file, wait in the queue and download it again. In case you missed it, simply use the slightly longer magick convert command rather than the standalone convert command. On Windows, you must check the (quite explicit) Install legacy utilities (e.g. Note that the standalone convert binary may not installed by default in recent versions. To pack several several of such png files in a final ico file, use: convert tmp/16.png tmp/32.png tmp/48.png tmp/128.png tmp/256.png icon.ico Here is a basic example exporting a svg file (the vector svg format is a good choice to generate consistent images of multiple size, like icons) to a png file in a temporary folder: convert icon.svg -scale 32 tmp/32.png Imagemagick contains several image handling utilities, is opensource, free to use, available on multiple platforms (Linux, Windows, Mac Os X, iOS) and can be batched easily for example in Continuous Integration pipelines. It provides image re-sizing to generate multiple size icons, and support various other image manipulation. The opensource imagemagick convert utility can pack multiple images into one single icon file.