首頁 >後端開發 >php教程 >php_imagick實現復古效果的方法

php_imagick實現復古效果的方法

墨辰丷
墨辰丷原創
2018-05-31 14:27:021524瀏覽

相信對於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.建立一個縮圖並顯示出來

<?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.建立一個目錄下的縮圖,並儲存

<?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.縮略GIF動畫圖片

<?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實作復古效果的方法

#先來看下效果圖

復古效果展示

要實現以上效果,我們先用Photoshop用下列步驟實現。

開啟原圖


新圖層,使用顏色#C0FFFF填滿後,不透明度設為44%,圖層混合模式為柔光


新建圖層,使用顏色#000699填滿後,不透明設定為48%,圖層混合模式為排除


合併圖層


用PHP程式碼,也只需要依照上述步驟實作即可,程式碼如下:

#

//打开图片
$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;);

總結:以上就是這篇文章的全部內容,希望對大家的學習有所幫助。

相關推薦:

php實作產生帶二維碼圖片並強制下載步驟詳解

PHP資料庫redis用法及分析

PHP Post取得不到非表單資料如何處理

以上是php_imagick實現復古效果的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn