See also colour, diagrams etc.
command line image editing
The command line tools to remember are graphicsmagick and imagemagick --- two similar, stand-offish rivals. Imagemagick is the original. Graphics magic as, AFAICT, a better API.
Here is a thing Histogram matching using imagemagick.
G'MIC includes a whole world of image conversion including scriptable image processing pipelines. See, e.g., a hand-rolled fingerpainting filter. Also has GIMP and Krita versions.
GUIs? you want, e.g. the adobe suite, which I will never touch because of the economics of comparative advantage…
Or a weird alternative one.
Gimp is a flagship open source image editor. It has powerful plugins. Its user experience is a clusterfuck; there are such startling and unneccessary pain points as the fact that plugin registry (which is IMO the only reason you would want to dive into this dorknado) is broken in an undocumented way that probably has to do with it being am undermaintained security nightmare.
Paul Harrison's rsynthesizer is a texture synthesizer for GIMP. See also his rather amazing thesis, with a diversion into the Turing completeness of tiling. And yes that G'MIC thing is also gimpy
Krita is a ground-up reimagining of fun open-source non-nerview image editing. It has cute features like quasi-physical-modelling brush design and automatic tiling mode. Fairly pleasant to use. You can write your own plugins in python, making this an art python app.