欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php 圖片 圓滑

林晨陽1年前8瀏覽0評論
在WEB開發(fā)中,圖片展示一頁內(nèi)容的重要組成部分,同樣所有圖片的展示方式也是決定了網(wǎng)站美觀度的重要因素。PHP是一種非常優(yōu)秀的用于WEB服務器開發(fā)的程序語言,針對圖片處理這塊,PHP擁有非常豐富的擴展庫可以使用,可以使圖像處理變得非常簡單便捷。本文將會描述其中一種使用PHP實現(xiàn)的圖片圓滑效果。 當處理圖片時,我們通常會想到的方法就是圖片磨細,以及使用某種算法改變圖片的度量空間,這樣可以使圖片變得更平滑。但是對于一些素材里包含了圓形等特殊形態(tài),單純這種方法就難以達到圓滑的效果。這時,就需要使用一些特殊的方法去處理,實現(xiàn)圖片圓滑效果。下面是這種處理方法的示例代碼:
<?php
// 圖片的大小
$width = 200;
$height = 200;
// 創(chuàng)建畫布
$img = imagecreatetruecolor($width, $height);
// 創(chuàng)建畫筆
$bg_color = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
$fill_color = imagecolorallocate($img, 0x98, 0x77, 0xBC);
// 繪制圓形
imagefilledellipse($img, $width / 2, $height / 2, $width, $height, $fill_color);
imagesetthickness($img, 5);
imageellipse($img, $width/2, $height/2, $width-10, $height-10, $bg_color);
// 取得圖片的base64碼
ob_start();
imagepng($img);
$contents = ob_get_contents();
ob_end_clean();
$imgString = 'data:image/png;base64,' . base64_encode($contents);
echo '<img src="' . $imgString . '"/>';
?>
基本上,以上代碼就是生成了一個PNG格式的圖片,圖片的大小為200x200像素,同時在圖片中間繪制了一個半徑當100像素的圓形,圓形中間填充顏色,然后再繪制一個白色的半徑為95像素的空心圓形。 這樣就基本實現(xiàn)了圖片圓滑效果,但是這種單獨的處理方法在實際的場景中并不夠用。在實際業(yè)務中,通常會用到帶有復雜背景的圖片。例如下面這樣一張圖片:

圖片1

我們需要通過PHP實現(xiàn)圖片效果圓滑的操作,就需要對這樣的圖片進行處理。首先我們會想到用到透明度,將圖片填充的圓形顏色改成透明,然后再將之前圓形內(nèi)的圖像粘貼進去。
<?php
$width = 200;
$height = 200;
// 創(chuàng)建畫布
$img = imagecreatetruecolor($width, $height);
// 創(chuàng)建畫筆
$bg_color = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
$fill_color = imagecolorallocatealpha($img, 0, 0, 0, 127);
// 繪制圓形
imagefilledellipse($img, $width / 2, $height / 2, $width, $height, $fill_color);
imagesetthickness($img, 5);
imageellipse($img, $width/2, $height/2, $width-10, $height-10, $bg_color);
// 原圖
$oriImg = './images/image1.jpg';
// 創(chuàng)建原圖
$orig = imagecreatefromjpeg($oriImg);
// 重新繪制圓形
$clip = imagecreatetruecolor($width, $height);
imagealphablending($clip, false);
imagesavealpha($clip, true);
$trans_color = imagecolorallocatealpha($clip, 0, 0, 0, 127);
imagefill($clip, 0, 0, $trans_color);
imagefilledellipse($clip, $width / 2, $height / 2, $width-10, $height-10, $bg_color);
// 將原圖拷貝到圓形內(nèi)
imagecopy($clip, $orig, 0, 0, 0, 0, $width, $height);
// 合成圖片
imagecopymerge($img, $clip, 0, 0, 0, 0, $width, $height, 100);
// 取得圖片的base64碼
ob_start();
imagepng($img);
$contents = ob_get_contents();
ob_end_clean();
$imgString = 'data:image/png;base64,' . base64_encode($contents);
echo '<img src="' . $imgString . '"/>';
?>
以上的代碼的基本思路就是創(chuàng)建一個透明的圓形畫布,再將原始圖片拷貝到這一畫布內(nèi),最后再將原本的圓形畫布繪制到其中,實現(xiàn)圖片的圓滑效果。 最終效果展示:

圓滑效果圖片

盡管圓滑效果的代碼實現(xiàn)非常簡單,但是在PHP中還是有相當多的選項可供調(diào)整。因此在實際使用中,我們可以依據(jù)場景需要進行調(diào)整,選擇最適合的圖片圓滑效果方式來展示圖像。
上一篇php 字符
下一篇css34p17