利用php_imagick实现复古效果的方法

2025-05-29 0 38

介绍

php_imagick是一个可以供php调用imagemagick功能的php扩展,使用这个扩展可以使php具备和imagemagick相同的功能。
imagemagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式 的图片文件,包括流行的tiff, jpeg, gif, png, pdf以及photocd等格式。利用imagemagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。

php_imagick程序示例

1.创建一个缩略图并显示出来

?

1

2

3

4

5

6

7
<?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.创建一个目录下的缩略图,并保存

?

1

2

3

4

5

6

7

8
<?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.缩略gif动画图片

?

1

2

3

4

5

6

7

8

9

10

11

12
<?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);

?>

利用php_imagick实现复古效果的方法

先来看下效果图

利用php_imagick实现复古效果的方法
复古效果展示

要实现以上效果,我们先用photoshop用以下步骤实现。

打开原图

新建图层,使用颜色#c0ffff填充后,不透明度设为44%,图层混合模式为柔光

新建图层,使用颜色#000699填充后,不透明设置为48%,图层混合模式为排除

合并图层

php代码,也就只需要按照以上步骤实现即可,代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
//打开图片

$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');

总结

以上就是利用php_imagick实现复古效果的方法,文章通过示例代码介绍的还是很详细的,感兴趣的朋友们自己敲敲代码更能方便理解,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 利用php_imagick实现复古效果的方法 https://www.kuaiidc.com/96048.html

相关文章

发表评论
暂无评论