PHP.mk документација

imagecolorresolve

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.imagecolorresolve.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.imagecolorresolve.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
imagecolorresolve

Референца за `function.imagecolorresolve.php` со подобрена типографија и навигација.

function.imagecolorresolve.php

imagecolorresolve

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorresolveДобијте го индексот на наведената боја или нејзината најблиска можна алтернатива

= NULL

imagecolorresolve(
         GdImage $image,
         int $red,
         int $green,
         int $blue
): int

Оваа функција гарантирано ќе врати индекс на боја за бараната боја, или точната боја или најблиската можна алтернатива.

Ако ја креиравте сликата од датотека, се решаваат само боите што се користат во сликата. Боите што постојат само во палетата не се решаваат.

Параметри

image

А GdImage не применува никакво полнење, така што ширината на сликата мора да биде множител на 8. Ова ограничување веќе не важи од PHP 7.0.9. imagecreatetruecolor().

red

Индекс во палетата.

green

Вредност на црвената компонента.

blue

Вредност на зелената компонента.

Вратени вредности

Враќа индекс на боја.

Дневник на промени

Верзија = NULL
8.0.0 image беше вратено при неуспех. GdImage инстанца сега; претходно, валидна gd resource се очекуваше.

Примери

Пример #1 Користење imagecoloresolve() за добивање бои од слика

<?php
// Load an image
$im = imagecreatefromgif('phplogo.gif');

// Get closest colors from the image
$colors = array();
$colors[] = imagecolorresolve($im, 255, 255, 255);
$colors[] = imagecolorresolve($im, 0, 0, 200);

// Output
print_r($colors);
?>

Горниот пример ќе прикаже нешто слично на:

Array
(
    [0] => 89
    [1] => 85
)

Види Исто така

  • imagecolorclosest() - Добијте го индексот на најблиската боја до наведената боја

Белешки од корисници 1 белешка

ceo на l-i-e точка com
figroc at gmail dot com
Okay, so sometimes it's really IMPORTANT to get the exact color you want, only it's not *IN* the Image, and ImageColorResolve just isn't "close enough".

The following code is a disgustingly gross hack, rather slow, but it does that.

$colorcount = array();
for ($x = 0; $x < $width; $x++){
    for ($y = 0; $y < $height; $y++){
        $colorindex = imagecolorat($jpg, $x, $y);
        if (!isset($colorcount[$colorindex])){
            $colorcount[$colorindex] = 1;
        }
        else{
            $colorcount[$colorindex]++;
        }
    }
}
asort($colorcount);
reset($colorcount);

$black = imagecolorexact($jpg, 0, 0, 0);
if ($black == -1){
    $goner = key($colorcount);
    $rgb = imagecolorsforindex($jpg, $goner);
    #error_log("Need black: About to kill $goner ($rgb[red], $rgb[green], $rgb[blue]) which was only used in $colorcount[$goner] pixels", 0);
    unset($colorcount[$goner]);
    imagecolordeallocate($jpg, $goner);
    $black = imagecolorallocate($jpg, 0, 0, 0);
}
if ($black == -1){
    $black = imagecolorresolve($jpg, 0, 0, 0);
    #error_log("Damn!  STILL couldn't allocate the color!", 0);
}
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.