php_imagick實現複古效果的方法

來源:互聯網
上載者:User
相信對於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.建立一個縮圖並顯示出來

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

<?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動畫圖片

<?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('./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');

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.