Home >Backend Development >PHP Tutorial >How to achieve retro effect with php_imagick

How to achieve retro effect with php_imagick

墨辰丷
墨辰丷Original
2018-05-31 14:27:021535browse

I believe that many people are familiar with php_imagick. This article first briefly introduces php_imagick and simple examples, and then introduces the method of using php_imagick to achieve retro effects through sample code, which is of certain significance to everyone's study and work. For reference value, friends in need can take a look below.

Introduction

php_imagick is a PHP extension that allows PHP to call the ImageMagick function. Using this extension can make PHP have the same functions as ImageMagick .
ImageMagick is a powerful, stable and free toolset and development package that can be used to read, write and process image files in more than 185 basic formats, including popular TIFF, JPEG, GIF, PNG, PDF and PhotoCD and other formats. Using ImageMagick, you can dynamically generate images according to the needs of web applications. You can also change the size, rotate, sharpen, reduce color or add special effects to an image (or a group of images), and save the results in the same format. or save in other formats.

php_imagick program example

1. Create a thumbnail and display it

<?php
header(&#39;Content-type: image/jpeg&#39;);
$image = new Imagick(&#39;image.jpg&#39;);
// If 0 is provided as a width or height parameter,// aspect ratio is maintained
$image->thumbnailImage(100, 0);
echo $image;
?>

2. Create a thumbnail in a directory and save it

<?php
$images = new Imagick(glob(&#39;images/*.JPG&#39;));
foreach($images as $image) {
// Providing 0 forces thumbnailImage to maintain aspect ratio
$image->thumbnailImage(1024,0);
}
$images->writeImages();
?>

3. Thumbnail GIF animated pictures

<?php
/* Create a new imagick object and read in GIF */
$im = new Imagick("example.gif");
/* Resize all frames */
foreach ($im as $frame) {
/* 50x50 frames */
$frame->thumbnailImage(50, 50);
/* Set the virtual canvas to correct size */
$frame->setImagePage(50, 50, 0, 0);
}/* Notice writeImages instead of writeImage */
$im->writeImages("example_small.gif", true);
?>

##How to use php_imagick to achieve retro effects

Let’s take a look at the renderings first

Retro effect display

To achieve the above effects, we first use Photoshop and use the following steps accomplish.

Open the original image


Create a new layer, fill it with the color #C0FFFF, set the opacity to 44%, and set the layer blending mode to Soft Light


Create a new layer, fill it with color #000699, set the opacity to 48%, and set the layer blending mode to exclude


Merge layers


With PHP code, you only need to follow the above steps to implement it. The code is as follows:

//打开图片
$im = new Imagick(&#39;./hebe.jpg&#39;);
//新建图层,使用颜色`#C0FFFF`填充后,不透明度设为`44%`
$layer = new Imagick();
$layer->newImage($im->getImageWidth(), $im->getImageHeight(), &#39;#C0FFFF&#39;);
$layer->setImageOpacity (0.44);
//叠加到原图上,图层混合模式为`柔光`
$im->compositeImage($layer, Imagick::COMPOSITE_SOFTLIGHT, 0, 0);
//新建图层,使用颜色`#000699`填充后,不透明设置为`48%`
$layer = new Imagick();
$layer->newImage($im->getImageWidth(), $im->getImageHeight(), &#39;#000699&#39;);
$layer->setImageOpacity (0.48);
//叠加到原图上,图层混合模式为`排除` 
$im->compositeImage($layer, Imagick::COMPOSITE_EXCLUSION, 0, 0);
//完成!
$im->writeImage(&#39;./vintage.jpg&#39;);

Summary: The above is the summary of this article All content, I hope it will be helpful to everyone's study.

Related recommendations:

php Detailed explanation of the steps to generate images with QR codes and force download

PHP database redis usage and analysis

##How to handle non-form data when PHP Post cannot obtain it


The above is the detailed content of How to achieve retro effect with php_imagick. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php+mysql processing timeNext article:php+mysql processing time