车栈

使用PHP-Imagick快速实现漂亮的复古效果

先来看下效果图

复古效果展示

要实现以上效果,我们先用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');