PHP 8.5.0 RC 2 available for testing

Imagick::getImageChannelRange

(PECL imagick 2 >= 2.2.1, PECL imagick 3)

Imagick::getImageChannelRange β€” Gets channel range

Опис

public Imagick::getImageChannelRange(int $channel): array

Gets the range for one or more image channels. Π¦Π΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступний, якщо Imagick Π·Ρ–Π±Ρ€Π°Π½ΠΈΠΉ Π· ImageMagick вСрсії 6.4.0 Π°Π±ΠΎ Π½ΠΎΠ²Ρ–ΡˆΠΎΡŽ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ

channel

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° ΠΊΠ°Π½Π°Π»Ρƒ, дійсна для ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ. Для застосування Ρ—Ρ— Π΄ΠΎ ΠΊΡ–Π»ΡŒΠΊΠΎΡ… ΠΊΠ°Π½Π°Π»Ρ–Π² Π½Π΅ΠΎΠ±Ρ…Ρ–Π΄Π½ΠΎ ΠΏΠΎΡ”Π΄Π½Π°Ρ‚ΠΈ константи ΠΊΠ°Π½Π°Π»Ρƒ ΠΏΠΎΠ±Ρ–Ρ‚ΠΎΠ²ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎ β€” Imagick::CHANNEL_DEFAULT. Π”ΠΈΠ². список констант ΠΊΠ°Π½Π°Π»Ρƒ.

ЗначСння, Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°ΡŽΡ‚ΡŒΡΡ

Returns an array containing minima and maxima values of the channel(s).

Помилки/Π²ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ

ΠšΠΈΠ΄Π°Ρ” ImagickException Π² Ρ€Π°Π·Ρ– ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ.

οΌ‹add a note

User Contributed Notes 1 note

up
0
holdoffhunger at gmail dot com ΒΆ
13 years ago
The getImageChannelRange returns an array with two values mapped to the keys 'minima' and 'maxima', which are simply the minimum and maximum values of that particular channel within the image that this function is performed upon. For photographs and high-quality imagery, that means that you're almost always guaranteed to have the minima be at 0 and the maxima be at the maximum bit-value allowed. For most images, that's 65,535, which is the value of 2^16 (if you start counting at 0), meaning 16-bits per Channel imagery. This goes for all of the channels.

If an image is simple, though, you may be able to get a better variety of ranges. An image that was simply a red square, the maxima and minima values for the Red Channel were both 65,535 (max), while the channels for the maxima and minima values for all other channels was 0 (min). If you want to know the maximum values you might get back for any of the channels, feed this function the default channel.

For your normal channels, you'll have something that looks like "imagick::CHANNEL_RED", but you could have unusual channels like "imagick::CHANNEL_OPACITY". For colors, you have the "_VALUE" options of: red, gray, cyan, green, magenta, blue, yellow, all, and default. For unusual channels, you have the "_VALUE" options of: undefined, alpha, opacity, matte, black, and index. With this function, the unusual channels always produce a minima of 1.0E+37 (10^37) and a maxima of -1.0E-37 (-10^-37), which makes no sense, so stick to the color values I pointed to above.

This function doesn't work for you? No problem. The function getImageChannelExtrema does the same *EXACT* thing. The only difference is that the error you get on the unusual channels: their minima and maxima, instead of defaulting to crazy values, simply defaults to 0.

In general, this function seems to have the utility of telling you how simple an image might be -- if the difference between a channel maxima and minima is very small, that means there wasn't much expression of color for that given channel. This will probably be able to tell you whether an image was drawn in some simple paint program or if it's an actual photograph, but beyond that, you'll have to do intensive programming to make it figure something out more complicated.

And now, an example of the results for some red-only image:

ImageMagick - Channel Range
Channel - 'Undefined' : Minima: 1.0E+37 Maxima: -1.0E-37
Channel - 'Red' : Minima: 65535 Maxima: 65535
Channel - 'Gray' : Minima: 65535 Maxima: 65535
Channel - 'Cyan' : Minima: 65535 Maxima: 65535
Channel - 'Green' : Minima: 0 Maxima: 0
Channel - 'Magenta' : Minima: 0 Maxima: 0
Channel - 'Blue' : Minima: 0 Maxima: 0
Channel - 'Yellow' : Minima: 0 Maxima: 0
Channel - 'Alpha' : Minima: 1.0E+37 Maxima: -1.0E-37
Channel - 'Opacity' : Minima: 1.0E+37 Maxima: -1.0E-37
Channel - 'Matte' : Minima: 1.0E+37 Maxima: -1.0E-37
Channel - 'Black' : Minima: 1.0E+37 Maxima: -1.0E-37
Channel - 'Index' : Minima: 1.0E+37 Maxima: -1.0E-37
Channel - 'All' : Minima: 0 Maxima: 65535
Channel - 'Default' : Minima: 0 Maxima: 65535
To Top