复古php源码,利用php_imagick实现复古效果的方法

相信对于php_imagick很多人都不陌生,这篇文章先进行简单的介绍了php_imagick和简单的示例,而后通过示例代码介绍了利用php_imagick实现复古效果的方法,对大家的学习和工作具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。

介绍

php_imagick是一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能。

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

php_imagick程序示例

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

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

$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动画图片

/* 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实现复古效果的方法

先来看下效果图

adee7cfd84331e30a041bc4615ae7124.png

复古效果展示

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

打开原图

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

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

合并图层

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

//打开图片

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值