There are four ways to do it, and for a handful of pictures the simplest one is still the best. This is what each method actually gets you, and where each one quietly fails.
One at a time, with right-click
Right-click the picture, choose Save image as, pick a folder. Nothing to install and nothing to trust.
For five images this is the right answer and you should stop reading. It stops being the right answer at about twenty, and it cannot reach several kinds of image at all: a picture set as a CSS background has no image element under your cursor, so the menu item you need is not in the menu. There is a separate guide for that case.
Save the whole page
Press Ctrl+S, or Cmd+S on a Mac, and choose Web page, complete. The browser writes an HTML file and a folder beside it holding the assets it downloaded.
The folder is a genuine copy of what the browser had, which is the appeal. The drawbacks are real too. You get every asset, not just photographs, so icons, spacers, tracking pixels and sprite sheets land in the same folder as the pictures you wanted. The filenames are whatever the site used, which is often a hash. And anything the page had not loaded yet, because you never scrolled to it, is not there.
The Network panel in developer tools
Press F12, open Network, set the filter to Img, then reload the page. Every image request the page makes is listed. You can right-click a row and open the image in a new tab, or copy its address.
This is the most honest view available: it shows what the browser really fetched, including images that arrived later from the page's own scripts. It is also completely manual. There is no select-all, no filter by size, and no way to save thirty of them without thirty round trips. It is a diagnostic tool that happens to be usable for this, rather than a tool for the job.
An extension
An extension can read the page the way the browser sees it, list what it found, and let you filter and save a selection in one action. That is the only method that scales past a few dozen pictures.
It is also the method that asks you to trust software with access to the page, so it is worth knowing what a given extension asks for and why. That question has its own guide, because the honest answer is more interesting than it sounds.
The cases that break naive tools
If a downloader gives you fewer pictures than you can see, one of these is usually why.
- CSS backgrounds. Hero images, banners and decorative panels are often set in a stylesheet rather than written as an image element, so a tool that only looks for image tags never sees them.
- Lazy loading. Images below the fold are not fetched until you scroll near them. Anything you have not scrolled past may not exist in the page yet.
- Responsive sources. One image tag can offer several files at different widths. The browser picks one. The others are still listed in the page and are often the larger ones.
- Web components. Modern sites build parts of the page inside shadow roots, which ordinary page queries do not reach. On component-heavy sites this is the difference between finding almost everything and finding almost nothing.
- Canvas and inline data. A picture drawn onto a canvas, or built by the page in memory, has no address on any server. Some of these can still be saved, some genuinely cannot.
Before you download anything
Finding an image and being allowed to use it are different questions. Most photographs on the web are somebody's copyright, and saving a copy does not give you a licence to republish it. Check the terms of the site you are on, and check the licence on the image itself, before you use what you collect.
Where Pixcrate fits
Pixcrate is built for the fourth method and for the awkward cases in the list above: it reads CSS backgrounds, looks inside web components, and includes images the page fetched with its own scripts. It filters by size, shape, file type, file size and the site serving each picture, renames in batches, and saves either one by one or as a single ZIP.
It is free for 25 downloads a day, with searching, filtering, previewing and renaming unlimited. It says "found on this page" rather than "all images", because on a page that hides content inside closed components no tool can promise everything, and one that promises it anyway is lying to you.