I’m attempting to convert some effects created in Photoshop into code for use with php/imagemagick. Right now I’m specifically interested in how to recreate Photoshop’s RGB levels feature. I’m not really familiar with the Photoshop interface, but this is the info that I am given:
RGB Level Adjust
Input levels: Shadow 0, Midtone 0.92, Highlight 255
Output levels: Shadow 0, Highlight 255
What exaclty are the input levels vs. the output levels? How would I translate this into ImageMagick? Below you can see what I have tried, but it does not correctly render the desired effect (converting Photoshop’s 0-255 scale to 0-65535):
$im->levelImage(0, 0.92, 65535);
$im->levelImage(0, 1, 65535);
This was mostly a stab in the dark since the parameter names don’t line up and for output levels the number of parameters don’t even match. Basically I don’t understand exactly what is going on when photoshop applies the adjustment. I think that’s my biggest hurdle right now. Once I get that, I’ll need to find corresponding effects in ImageMagick.
Can anyone shed some light on what’s going on in Photoshop and how to replicate that with ImageMagick?
So I stumbled across this website: http://www.fmwconcepts.com/imagemagick/levels/index.php
Based on the information there, I was able to come up with the following php which seems pretty effective at simulating what Photoshop does with input and output and all that.
This assumes that the parameters to levelImage for blackpoint and whitepoint are on a scale of 0-255. They might actually be 0-65535 on your system. If that’s they can it’s easy enough to adjust it. You can also check what value your setup uses with $im->getQuantumRange(). It will return an array with a string version and a long version of the quantum. From there it should be easy enough to normalize the values or just use the new range.