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

imagecropauto

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

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

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

function.imagecropauto.php

imagecropauto

Распакување на вгнездени низи

imagecropautoCrop an image automatically using one of the available modes

= NULL

imagecropauto(
         GdImage $image,
         int $mode = IMG_CROP_DEFAULT,
         float $threshold = 0.5,
         int $color = -1
): GdImage|false

Автоматски исечете слика користејќи еден од достапните режими mode.

Параметри

image

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

mode

Една од следниве константи:

IMG_CROP_DEFAULT
Исто како IMG_CROP_TRANSPARENT. Пред PHP 7.4.0, вклучениот libgd се враќаше на IMG_CROP_SIDES, ако сликата немаше проѕирна боја.
IMG_CROP_TRANSPARENT
Исечува проѕирна позадина.
IMG_CROP_BLACK
Исечува црна позадина.
IMG_CROP_WHITE
Исечува бела позадина.
IMG_CROP_SIDES
Користи 4 агли на сликата за да се обиде да ја открие позадината за исечување.
IMG_CROP_THRESHOLD
Исечува слика користејќи го даденото threshold and color.
threshold

Автоматски ги исекува сликите според дадените

Ја специфицира толеранцијата во проценти што ќе се користи при споредување на бојата на сликата и бојата за исечување. Методот што се користи за пресметување на разликата во бојата се заснова на растојанието на бојата во RGB(a) коцката. IMG_CROP_THRESHOLD mode.

Забелешка: Се користи само во threshold Пред PHP 7.4.0, вклучената libgd користеше малку поинаков алгоритам, така што истото

color

даде различни резултати за системската и вклучената libgd.

Ја специфицира толеранцијата во проценти што ќе се користи при споредување на бојата на сликата и бојата за исечување. Методот што се користи за пресметување на разликата во бојата се заснова на растојанието на бојата во RGB(a) коцката. IMG_CROP_THRESHOLD mode.

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

Вредност на боја RGB или индекс на палета. false при неуспех. false Враќа исечен објект од слика при успех или

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

Верзија = NULL
8.0.0 image беше вратено при неуспех. GdImage инстанца сега; претходно, валидна gd resource се очекуваше.
8.0.0 При успех, оваа функција враќа GDImage инстанца сега; претходно, а resource .
7.4.0 исто така се враќа ако целата слика е исечена. IMG_CROP_DEFAULT Однесувањето на imagecropauto() во вклучената libgd е синхронизирано со онаа на системската libgd: IMG_CROP_SIDES повеќе не се враќа на
7.4.0 а исечувањето со праг сега користи ист алгоритам како системската libgd. mode Стандардната вредност на IMG_CROP_AUTOе променета на -1 . Претходно, стандардната вредност беше IMG_CROP_DEFAULT, што одговара на -1 не е валидна опција

Примери

, но поминување

Пример #1 Правилно ракување со автоматско исечување imagecropauto() returns false Како што е забележано во делот за вратена вредност, $im што треба автоматски да се исече само ако има нешто за исекување; инаку сакаме да продолжиме со оригиналната слика.

<?php
$cropped
= imagecropauto($im, IMG_CROP_DEFAULT);
if (
$cropped !== false) { // in case a new image object was returned
$im = $cropped; // assign the cropped image to $im
}
?>

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

  • imagecrop() - Исечете слика до дадениот правоаголник

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

raphael.deiana
пред 9 години
In some cases the use of the IMG_CROP_WHITE or IMG_CROP_BLACK does not work. The function returns FALSE. It is best to use the IMG_CROP_THRESHOLD mode and specify the color in fourth argument as in the example below :

<?php

$original_img = imagecreatefromjpeg($image_path);

// Use this :
$cropped_img_white = imagecropauto($original_img , IMG_CROP_THRESHOLD, null, 16777215);
// Rather than :
$cropped_img_white = imagecropauto($original_img , IMG_CROP_WHITE);

// AND

// Use this :
$cropped_img_black = imagecropauto($original_img , IMG_CROP_THRESHOLD, null, 0);
// Rather than :
$cropped_img_black = imagecropauto($original_img , IMG_CROP_BLACK);

?>
pj точка mueller на protonmail точка ch
3 години пред
I don’t know why you can’t set the threshold for the four sides filter (IMG_CROP_SIDES) so here’s how to do it manually using the IMG_CROP_THRESHOLD filter instead.

$threshold = .5;

$im = imagecreatefromjpeg('somefile.jpg');

$width = imagesx($im);
$height = imagesy($im);

$arr = [
    [0,0],
    [$width-1,0],
    [0,$height-1],
    [$width-1,$height-1],
];

$red = 0;
$green = 0;
$blue = 0;

// grab the colours from all four corners
foreach( $arr as $arr2 ) {
    $thisColor = imagecolorat($im, $arr2[0], $arr2[1]); 

    $rgb = imagecolorsforindex($im, $thisColor); 
    $red += round(round(($rgb['red'] / 0x33)) * 0x33); 
    $green += round(round(($rgb['green'] / 0x33)) * 0x33); 
    $blue += round(round(($rgb['blue'] / 0x33)) * 0x33); 
}

// and average them
$red /= 4;
$green /= 4;
$blue /= 4;

$newColor = imagecolorallocate($im, $red, $green, $blue);            

$cropped = imagecropauto($im, IMG_CROP_THRESHOLD, $threshold, $newColor);

imagejpg($cropped, 'somefile.cropped.jpg');

imagedestroy($im);
imagedestroy($cropped);
Навигација

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

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

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

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

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

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

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