PHP GD 5.6.36:圖片處理的瑞士軍刀
如果你想用PHP實(shí)現(xiàn)圖片處理,那么PHP GD庫就是你的最佳選擇。它提供一整套處理圖片的函數(shù),可以輕松完成圖片的加載、裁剪、縮放、旋轉(zhuǎn)、文字繪制等一系列操作。最終,你可以將處理出來的圖片以JPEG,PNG,GIF等格式輸出到瀏覽器或者保存到本地。大多數(shù)PHP網(wǎng)站都會使用PHP GD庫,它可以用于構(gòu)建圖像編輯器,驗(yàn)證碼,縮略圖生成器等多種應(yīng)用。
PHP GD提供了80多個處理圖片的函數(shù),這個數(shù)字還在不斷增加。其中最核心的兩個函數(shù)是"imagecreatetruecolor"和"imagecopyresampled"。"imagecreatetruecolor"函數(shù)用于創(chuàng)建一個真實(shí)顏色的圖片,可以指定長和寬,以及默認(rèn)的黑色背景顏色。"imagecreatetruecolor"返回一個圖像資源標(biāo)識符,你可以將其用于其它圖像處理函數(shù)。
$canvas = imagecreatetruecolor(200, 200);
"imagecopyresampled"函數(shù)用于復(fù)制一幅圖像并調(diào)整大小。這個函數(shù)非常靈活,可以用于縮小圖片、放大圖片、剪裁圖片等多種操作。這個函數(shù)還具有防抖動功能,這樣你的圖片在縮小或者剪裁后,不會出現(xiàn)鋸齒或奇怪的像素。使用這個函數(shù)后,記得用"imagejpeg"或者"imagepng"函數(shù)將生成的圖片顯示到瀏覽器,或保存到本地。
$image = imagecreatefromjpeg("image.jpg");
$canvas = imagecreatetruecolor(200, 200);
imagecopyresampled($canvas, $image, 0, 0, 0, 0, 200, 200, imagesx($image), imagesy($image));
header('Content-Type: image/png');
imagepng($canvas);
PHP GD還提供了一系列函數(shù)用于處理圖片的文字。這些函數(shù)可以設(shè)置字體,字號,顏色,位置等等。你還可以使用"imagettftext"函數(shù)將TTF字體渲染到圖片上面。
$text_color = imagecolorallocate($canvas, 255, 255, 255);
$font_file = "arial.ttf";
$text = "Hello World!";
imagettftext($canvas, 24, 0, 10, 50, $text_color, $font_file, $text);
PHP GD不僅僅是一些函數(shù)和圖像處理的功能,它還提供了一些很有用的工具。其中最著名的就是"imagick"擴(kuò)展。"imagick"提供了更高級別的圖像處理工具,比如你可以使用"compositeImage"函數(shù)將兩幅圖像混合起來。"imagick"還可以讓你使用圖片處理的接口來處理PDF,SVG等多種圖像文件。
雖然PHP GD不是完美的圖像處理解決方案,比如它不支持任何類型的矢量圖像,但是它仍然是你在PHP應(yīng)用中最好的選擇。它使用簡單,性能優(yōu)異,并且有很多的文檔和示例。你可以用PHP GD庫輕松處理你Web應(yīng)用中的任何圖片。