is_gd_image()

Определяет, является ли значение приемлемым типом для функций работы с изображениями GD
Функция WordPress
INT 5.6.0
WordPress Icon

Описание функции

Функция is_gd_image() определяет, является ли значение допустимым типом для функций работы с изображениями GD.

GD (Graphics Draw) — это библиотека для создания и обработки графических изображений в PHP. Функция is_gd_image() позволяет проверить, является ли переданное значение допустимым типом для работы с изображениями в GD.

Использование

is_gd_image( resource|GdImage|false $image ): bool

Функция is_gd_image() принимает один обязательный параметр $image, который представляет собой значение, для которого нужно проверить тип. Возвращает функция булево значение.

  • $image (resource|GdImage|false) — Значение, для которого нужно проверить тип.

Функция возвращает булево значение. Если $image является либо ресурсом изображения GD, либо экземпляром класса GdImage, то возвращается true. В противном случае возвращается false.


$image = imagecreatefromjpeg('image.jpg'); // Создание ресурса изображения из файла
$result = is_gd_image($image); // Проверка типа изображения
if ($result) {
  echo 'Это допустимый тип изображения GD.';
} else {
  echo 'Это не допустимый тип изображения GD.';
}

В данном примере мы создаем ресурс изображения GD с помощью функции imagecreatefromjpeg() и сохраняем его в переменную $image. Затем мы вызываем функцию is_gd_image() с параметром $image для проверки его типа. Если тип изображения является допустимым для GD, то выводится сообщение «Это допустимый тип изображения GD.», иначе выводится сообщение «Это не допустимый тип изображения GD.».

Примеры использования

Определение типа изображения


/**
 * Определение типа изображения
 *
 * @param resource|GdImage|false $image Значение для проверки типа.
 * @return bool Возвращает true, если $image является ресурсом GD изображения или экземпляром GdImage, в противном случае возвращает false.
 */
function is_gd_image( $image ) {
    // Проверяем, является ли $image ресурсом GD изображения или экземпляром GdImage
    if ( is_resource( $image ) && get_resource_type( $image ) === 'gd' ) {
        return true;
    } elseif ( $image instanceof GdImage ) {
        return true;
    } else {
        return false;
    }
}
// Пример использования функции is_gd_image()
$image = imagecreatefromjpeg( 'image.jpg' );
if ( is_gd_image( $image ) ) {
    echo 'Изображение является ресурсом GD или экземпляром GdImage.';
} else {
    echo 'Изображение не является ресурсом GD или экземпляром GdImage.';
}

Проверка размера изображения


/**
 * Проверка размера изображения
 *
 * @param resource|GdImage|false $image Значение для проверки типа.
 * @param int $width Минимальная ширина изображения.
 * @param int $height Минимальная высота изображения.
 * @return bool Возвращает true, если изображение имеет размеры больше или равные указанным, в противном случае возвращает false.
 */
function is_image_size_greater_than( $image, $width, $height ) {
    // Проверяем, является ли $image ресурсом GD изображения или экземпляром GdImage
    if ( is_gd_image( $image ) ) {
        // Получаем ширину и высоту изображения
        $image_width = imagesx( $image );
        $image_height = imagesy( $image );
        // Проверяем, больше ли или равна ширина и высота изображения указанным значениям
        if ( $image_width >= $width && $image_height >= $height ) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
// Пример использования функции is_image_size_greater_than()
$image = imagecreatefromjpeg( 'image.jpg' );
if ( is_image_size_greater_than( $image, 800, 600 ) ) {
    echo 'Размер изображения больше или равен 800x600.';
} else {
    echo 'Размер изображения меньше 800x600.';
}

Изменение цветового пространства изображения


/**
 * Изменение цветового пространства изображения
 *
 * @param resource|GdImage|false $image Значение для проверки типа.
 * @param int $new_color_space Новое цветовое пространство изображения.
 * @return resource|GdImage|false Возвращает измененное изображение или false в случае ошибки.
 */
function change_image_color_space( $image, $new_color_space ) {
    // Проверяем, является ли $image ресурсом GD изображения или экземпляром GdImage
    if ( is_gd_image( $image ) ) {
        // Получаем текущее цветовое пространство изображения
        $current_color_space = imagecolorspace( $image );
        // Проверяем, отличается ли текущее цветовое пространство от нового
        if ( $current_color_space !== $new_color_space ) {
            // Изменяем цветовое пространство изображения
            $converted_image = imageconvert( $image, $new_color_space );
            // Проверяем, удалось ли изменить цветовое пространство
            if ( $converted_image !== false ) {
                return $converted_image;
            } else {
                return false;
            }
        } else {
            return $image;
        }
    } else {
        return false;
    }
}
// Пример использования функции change_image_color_space()
$image = imagecreatefromjpeg( 'image.jpg' );
$new_image = change_image_color_space( $image, IMG_COLORSPACE_RGB );
if ( $new_image !== false ) {
    echo 'Цветовое пространство изображения изменено.';
} else {
    echo 'Не удалось изменить цветовое пространство изображения.';
}

Копирование изображения


/**
 * Копирование изображения
 *
 * @param resource|GdImage|false $image Значение для проверки типа.
 * @return resource|GdImage|false Возвращает копию изображения или false в случае ошибки.
 */
function copy_image( $image ) {
    // Проверяем, является ли $image ресурсом GD изображения или экземпляром GdImage
    if ( is_gd_image( $image ) ) {
        // Создаем копию изображения
        $copied_image = imagecopy( $image );
        // Проверяем, удалось ли создать копию изображения
        if ( $copied_image !== false ) {
            return $copied_image;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
// Пример использования функции copy_image()
$image = imagecreatefromjpeg( 'image.jpg' );
$copied_image = copy_image( $image );
if ( $copied_image !== false ) {
    echo 'Изображение успешно скопировано.';
} else {
    echo 'Не удалось скопировать изображение.';
}

Создание превью изображения


/**
 * Создание превью изображения
 *
 * @param resource|GdImage|false $image Значение для проверки типа.
 * @param int $thumbnail_width Ширина превью изображения.
 * @param int $thumbnail_height Высота превью изображения.
 * @return resource|GdImage|false Возвращает превью изображения или false в случае ошибки.
 */
function create_thumbnail( $image, $thumbnail_width, $thumbnail_height ) {
    // Проверяем, является ли $image ресурсом GD изображения или экземпляром GdImage
    if ( is_gd_image( $image ) ) {
        // Получаем ширину и высоту изображения
        $image_width = imagesx( $image );
        $image_height = imagesy( $image );
        // Вычисляем коэффициенты масштабирования
        $scale_width = $thumbnail_width / $image_width;
        $scale_height = $thumbnail_height / $image_height;
        // Выбираем меньший коэффициент масштабирования
        $scale = min( $scale_width, $scale_height );
        // Вычисляем новые размеры превью изображения
        $thumbnail_width = $image_width * $scale;
        $thumbnail_height = $image_height * $scale;
        // Создаем превью изображения
        $thumbnail = imagecreatetruecolor( $thumbnail_width, $thumbnail_height );
        imagecopyresampled( $thumbnail, $image, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $image_width, $image_height );
        // Проверяем, удалось ли создать превью изображения
        if ( $thumbnail !== false ) {
            return $thumbnail;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
// Пример использования функции create_thumbnail()
$image = imagecreatefromjpeg( 'image.jpg' );
$thumbnail = create_thumbnail( $image, 200, 200 );
if ( $thumbnail !== false ) {
    echo 'Превью изображения успешно создано.';
} else {
    echo 'Не удалось создать превью изображения.';
}

Вопросы и ответы

Как проверить тип значения для использования в функциях GD-изображений?

Для проверки типа значения перед использованием в функциях GD-изображений, можно воспользоваться функцией is_gd_image(). Она принимает один обязательный параметр — значение, которое нужно проверить.

Как определить, является ли значение GD-изображением?

Функция is_gd_image() возвращает булево значение true, если переданное значение является ресурсом GD-изображения или экземпляром класса GdImage. В противном случае, функция возвращает false.

Пример использования функции is_gd_image():


$image = imagecreatefromjpeg('image.jpg');
if (is_gd_image($image)) {
    // Изображение является GD-изображением
} else {
    // Изображение не является GD-изображением
}

Какие типы значений принимает функция is_gd_image()?

Функция is_gd_image() принимает следующие типы значений:

  • resource — ресурс GD-изображения;
  • GdImage — экземпляр класса GdImage;
  • false — ложное значение.

Какие значения возвращают true при использовании функции is_gd_image()?

Функция is_gd_image() возвращает значение true, если переданный параметр является ресурсом GD-изображения или экземпляром класса GdImage.

Пример использования:


$image = imagecreatefromjpeg('image.jpg');
if (is_gd_image($image)) {
    echo 'Valid GD image';
}

Какие значения возвращают false при использовании функции is_gd_image()?

Функция is_gd_image() возвращает значение false, если переданный параметр не является ресурсом GD-изображения и не является экземпляром класса GdImage.

Пример использования:


$image = 'not_an_image.jpg';
if (!is_gd_image($image)) {
    echo 'Invalid GD image';
}

Какие типы значений не принимает функция is_gd_image()?

Функция is_gd_image() не принимает значения, которые не являются ресурсом GD-изображения и не являются экземпляром класса GdImage.

Какие другие функции GD могут использоваться с результатом функции is_gd_image()?

Результат функции is_gd_image() может быть использован с другими функциями GD, которые требуют валидного GD-изображения. Например, функции imagecopy(), imagefilter(), imagejpeg() и другие.

Функция is_gd_image() позволяет определить, является ли переданное значение GD-изображением или экземпляром GdImage. Она возвращает логическое значение, которое можно использовать для принятия решений в коде. Используйте эту функцию, чтобы убедиться, что переданное значение можно безопасно использовать в функциях, связанных с GD-изображениями.

Связанные элементы

  • Функция wp_crop_image(): обрезает изображение до указанных размеров.
  • Функция wp_get_image_editor(): возвращает экземпляр класса WP_Image_Editor для указанного файла изображения.
  • Функция wp_get_additional_image_sizes(): возвращает дополнительные размеры изображений, определенные в настройках темы.
  • Хук wp_generate_attachment_metadata: вызывается после загрузки вложения для генерации метаданных.
  • Хук wp_image_editors: позволяет добавить или изменить доступные редакторы изображений.
  • Хук wp_image_editor_before_change: вызывается перед применением изменений к изображению.
  • Класс WP_Image_Editor: предоставляет методы для редактирования изображений.
  • Класс WP_Image_Editor_GD: предоставляет методы для редактирования изображений с использованием библиотеки GD.
Обсуждение