CropTool is a tool for cropping image files at Wikimedia Commons and other Wikimedia sites using the MediaWiki API with OAuth.
Features:
- Supports JPEG, PNG, SVG and (animated) GIF files, and also single pages from DjVu and PDF files.
- JPEGs can be cropped either losslessly using jpegtran or pixel perfect using ImageMagick.
- Crop preview can be initialized from query string parameters:
?title=Example.jpg&left=10&top=10&width=150&height=100
or?title=Example.jpg&left=10&top=10&right=10&bottom=10
- Detects
{{Remove border}}
, Category:Images with borders,{{Watermark}}
and{{Trimming}}
, and provides check boxes for optional removal of these upon cropping. - The result can replace the original file or be uploaded as a new one.
- If the result is uploaded as a new file on Wikimedia Commons,
- the
{{Extracted from}}
template is added to the new file, and the{{Image extracted}}
template is added or updated on the original. - some templates are not copied to the new page: quality assessment templates ([Featured picture](https://commons.wikimedia.org/wiki/Template:Featured picture), Valued image, Quality image, Picture of the day, Assessments), license review templates and crop tracking templates (Extracted from and Image extracted).
- the
- Stops users from cropping images waiting for license review (having
{{Flickrreview}}
without any parameters, or some of theUser:FlickreviewR
subtemplates), since images should be reviewed before being altered. - Adds
{{Orphaned non-free revisions}}
when cropping non-free media on English Wikipedia.
- Request an OAuth 1.0 consumer at https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration/propose with
- Callback URL: https://localhost:7878/
- Allow consumer to specify a callback in requests
- Grants: "Edit existing pages", "Create, edit, and move pages", "Upload new files" and "Upload, replace, and move files"
-
Copy
config.dev.ini
toconfig.ini
and add the consumer token and secret token toconfig.ini
and check the default paths for the dependencies.
docker compose run phpfpm composer install
npm install
- Build the frontend:
npx gulp build
- Generate secret for encrypted cookies:
docker compose run phpfpm php generate-key.php
- Start the development server on https://localhost:7878/
docker-compose up
Note that you should be able to login and preview cropping without waiting for the OAuth consumer to be accepted.
ssh tools-login.wmflabs.org
become croptool
git pull
toolforge build start https://github.com/danmichaelo/croptool.git
toolforge webservice --backend=kubernetes --mount=all buildservice restart
First-time setup:
- Copy
config.prod.ini
into the home directory, and add OAuth information - Creates a
public_files
directory in the home directory and set it to be readable and writable by others