Home > Article > Backend Development > How to use php_imagick to achieve retro effect_php example
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 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('Content-type: image/jpeg'); $image = new Imagick('image.jpg'); // 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('images/*.JPG')); 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 effect
Let’s take a look at the renderings first
Retro effect display
To achieve the above effect, we first use Photoshop to achieve it with the following steps.
Open the original picture
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
Using PHP code, you only need to follow the above steps to implement it. The code is as follows:
//打开图片 $im = new Imagick('./hebe.jpg'); //新建图层,使用颜色`#C0FFFF`填充后,不透明度设为`44%` $layer = new Imagick(); $layer->newImage($im->getImageWidth(), $im->getImageHeight(), '#C0FFFF'); $layer->setImageOpacity (0.44); //叠加到原图上,图层混合模式为`柔光` $im->compositeImage($layer, Imagick::COMPOSITE_SOFTLIGHT, 0, 0); //新建图层,使用颜色`#000699`填充后,不透明设置为`48%` $layer = new Imagick(); $layer->newImage($im->getImageWidth(), $im->getImageHeight(), '#000699'); $layer->setImageOpacity (0.48); //叠加到原图上,图层混合模式为`排除` $im->compositeImage($layer, Imagick::COMPOSITE_EXCLUSION, 0, 0); //完成! $im->writeImage('./vintage.jpg');
Summary
The above is the method of using php_imagick to achieve the retro effect. The article introduces it in detail through the example code. It is easier for interested friends to type the code themselves. I hope the content of this article can bring some benefits to everyone's study or work. For help, if you have any questions, you can leave a message to communicate.