Extension:PageImages

The PageImages extension collects information about images used on a page.

Its aim is to return the single most appropriate thumbnail associated with an article.

API
The PageImages extension provides image information by adding a   to the  API for  .

Configuration
$wgPageImagesBlacklist is an array of sources for image blacklists. Blacklisted images will never be selected as page images. Examples:

More than one source can be used at the same time.

$wgPageImagesBlacklistExpiry determines how long the blacklist will remain cached, in seconds.

Default: 15 * 60 (15 minutes).

$wgPageImagesExpandOpenSearchXml if set to true, PageImages will override the image detection in the  API module with its own, more accurate results.

Default: false.

$wgPageImagesNamespaces is an array of namespaces PageImages will be activated on. Default: NS_MAIN.

The blacklist itself should contain a wikilinks to blacklisted files, the rest of content is irrelevant (and can contain links to other pages).

For example:

Remember that file links that result in images being added to the page will not work (these files are blacklisted for a reason, right?), so don't forget the  in front of the links.

How it works
When a page is saved with a local image, the parser runs the hooks  and.

The PageImages extension responds to these (and other hooks) and inserts a new property for the page into the  table.

The property name is  and its value is the name of the image.

The extension only stores the chosen image name. Other features may display the image, such as Page information, Hovercards, and Mobile search while typing.

How does it select images?
All images in the page are collected and a score for each image is calculated. The image with the highest score is selected as the page image. If the wiki is configured such that images contain metadata that specifies images are not freely licensed, the image with the best score that is also freely licensed is also stored. If no suitable image is found or all the images score badly, the page will not have any images.

If $wgPageImagesLeadSectionOnly is truthy, only images in the lead section will be considered.

How are images scored?
The best possible page image on Wikimedia wikis is one of the first four images in an article which has a width/height between 400-600px and a height/width which is twice the value of the other dimension.
 * The algorithm is configurable.
 * Scores are calculated by a combination of:
 * Image widths as defined in $wgPageImagesScores['width']
 * In Wikimedia wikis, images smaller than 119 pixels are weighted highly negatively. Images with widths between 400px-600px are favoured, with a preference for the lower bound.
 * Images inside galleries are scored separately using $wgPageImagesScores['galleryImageWidth']
 * In Wikimedia wikis gallery images which are smaller than 100 are disregarded.
 * Position in document is also considered as defined in $wgPageImagesScores['position']
 * On Wikimedia wikis, only the first 4 images that appear in the document are considered.
 * The ratio of the image's width to height is considered $wgPageImagesScores['ratio']
 * On Wikimedia wikis the best possible images are images where the height is half the width or the height is double the width

Be more technical please...
Pageimages populates images whenever the LinksUpdate hook runs.

In PageImages this is executed in LinksUpdateHookHandler::doLinksUpdate

Can I exclude certain page images?
Yes! There is a blacklist on every wiki that editors can edit. Any images that appear here will not be page images for any article.

What about just for one particular article?
Sadly not at the current time. Please use the blacklist or move the image outside the lead section.

How can I see the page image for a page?
Using ?action=info you'll be able to see the current image choice.

How can I purge a bad image?
The pageimage only changes when a link in an article changes. For emergencies, please add/remove links from the page, reverting if necessary. Purging will not work. For larger emergencies please file a Phabricator ticket.