PHP Imagick::charcoalImage()

PHP Imagick::charcoalImage()

The Imagick::charcoalImage() 方法是一个用于模拟图像素描的PHP内置函数。此函数将根据传入的参数图像创建一个炭笔图像。我们将要将图像作为输入传递给这个函数,函数生成的输出即为该图像的炭笔副本。

此函数接受以下参数,如上所述:

  • $radius : 高斯半径的像素值存储在此参数中。
  • $sigma : 高斯标准差的像素值存储在此参数中。

返回值

返回值是一个布尔值,取决于函数的成功或失败。如果输入图像成功转换为炭笔图像,此函数的返回类型将为true。另一方面,如果输入图像转换为炭笔图像失败,此函数的返回类型将更改为false。

现在让我们看一个使用此函数将图像转换为炭笔替代品的示例代码。

示例代码

<?php
function charcoalImage(imagePath,radius, sigma) {imagick = new \Imagick(realpath(imagePath));imagick->charcoalImage(radius,sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>

输出:

PHP Imagick::charcoalImage()

上面所写的代码将成功地将图像转换为其炭笔替代品。要指定要转换为炭笔图像的哪个图像,我们需要传递文件路径,因此文件路径将是我们要应用此操作的实际文件部分。

附加说明

该函数的参数有些可怕。我花了一些时间来拼凑它。高斯函数是“刷子”,半径是刷子的半径,标准差是刷子印象大小之间的方差程度(在Gimp / Photoshop术语中)。$radius参数可以设置为0到你能想象的最高值,但是一旦超过10,20或30个像素,根据图像大小,图像就会变得太模糊而无法辨认。为了达到预期的效果,$sigma或标准差应小于半径。可以这样考虑:“$radius像素大小的炭笔刷,每个刷子都比那个更大或更小$sigma像素。”

对于普通的500 x 500像素图像,您可能需要3到5个像素的半径和1到3个像素的$sigma,但是在图像变得难以辨认之前,通常可以增加到10个像素。 (目前,$radius:5 / $sigma:2是这个400×400图像的理想组合)。此代码打开提供的文件,将炭笔图像效果应用于它,然后将其保存到另一个指定的文件。参数通过POST数据传递,使用的唯一的ImageMagick函数是读取图像文件,炭笔图像和写入图像文件,如下所示:

代码:

<?php
        // Grab Inbound Data -- Function Parameters
        // --------------------------------------------------

    inbound_gaussian_radius_nk =_POST['radius_of_gaussian'];
    inbound_standard_deviation_nk =_POST['standard_deviation_of_gaussian'];

        // Grab Inbound Data -- Read-File and Write-File
        // --------------------------------------------------

    file_to_be_used =_POST['file_target'];
    inbound_save_as_filename =_POST['saveable_result_file'];

        // Grab Image File Data
        // ---------------------------------------------

    location_of_the_folder_nk = "images/workshop/";file_to_get_the_location_nk = location_of_the_folder_nk .file_to_be_used;

    type_of_imagick_nk = new Imagick();

        // Open File
        // ---------------------------------------------file_handle_for_viewing_image_file_nk = fopen(file_to_get_the_location_nk, 'a+');

        // Read File
        // ---------------------------------------------type_of_imagick_nk->readImageFile(file_handle_for_viewing_image_file_nk);

        // Perform Function
        // ---------------------------------------------type_of_imagick_nk->charcoalImage(inbound_gaussian_radius_nk,inbound_standard_deviation_nk);

        // Save File
        // ---------------------------------------------

    location_of_the_folder_nk = "images/workshop/";file_to_get_the_location_nk = location_of_the_folder_nk .inbound_save_as_filename;

    file_handle_for_saving_image_file_final_nk = fopen(file_to_get_the_location_nk, 'a+');

        // Write File
        // ---------------------------------------------

    type_of_imagick_nk->writeImageFile(file_handle_for_saving_image_file_final_nk);

?>

输出:

PHP Imagick::charcoalImage()

因此,本文简要介绍了如何使用此特定的PHP内置函数将简单图像转换为对应的炭笔效果图。除了Imagick::charcoalImage()函数外,我们还使用了其他一些函数,我们将在其他文章中介绍这些函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程