本文目錄一覽:
- 1、PHP圖像處理函數有哪些
- 2、為什麼用PHP對上傳圖片進行裁剪的時候,沒成功,而且連上傳的原圖都沒了
- 3、PHP 長方形圖片 不變形 裁剪 生成 正方形
- 4、php如何實現圖片的裁剪
- 5、怎麼實現php上傳圖片並可以裁剪的功能,類似一些網站的頭像截取,裁剪可以用jcrop插件。高分懸賞
PHP圖像處理函數有哪些
php圖像處理函數大全
php圖片處理代碼分享,包括縮放、剪裁、縮放、翻轉、旋轉、透明、銳化等。需要的朋友可以參考下
一、創建圖片資源
imagecreatetruecolor(width,height);
imagecreatefromgif(圖片名稱);
imagecreatefrompng(圖片名稱);
imagecreatefromjpeg(圖片名稱);畫出各種圖像
imagegif(圖片資源,保存路徑);
imagepng()
imagejpeg();
二、獲取圖片屬性
imagesx(res//寬度
imagesy(res//高度
getimagesize(文件路徑)
返回一個具有四個單元的數組。索引
0 包含圖像寬度的像素值,索引 1 包含圖像高度的像素值。索引 2 是圖像類型的標記:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 =
PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10
= JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。這些標記與 PHP 4.3.0 新加的
IMAGETYPE 常量對應。索引 3 是文本字元串,內容為「height=”yyy” width=”xxx”」,可直接用於 IMG
標記。
銷毀圖像資源
imagedestroy(圖片資源);
三、透明處理
PNG、jpeg透明色都正常,只有gif不正常
imagecolortransparent(resource
image [,int
color])//將某個顏色設置成透明色
imagecolorstotal()
imagecolorforindex();
四、圖片的裁剪
imagecopyresized()
imagecopyresampled();
五、加水印(文字、圖片)
字元串編碼轉換string iconv ( string $in_charset ,
string $out_charset , string $str )
六、圖片旋轉
imagerotate();//制定角度的圖片翻轉
七、圖片的翻轉
沿X軸 沿Y軸翻轉
八、銳化
imagecolorsforindex()
imagecolorat()
為什麼用PHP對上傳圖片進行裁剪的時候,沒成功,而且連上傳的原圖都沒了
加個base64_decode方法試試:
$src = imagecreatefromstring(base64_decode(file_get_contents($src_path)));
PHP 長方形圖片 不變形 裁剪 生成 正方形
$x = (200-150)/2;
imagecopyresampled($thumb, $img_r2, 0, 0, $x, 0, $thumb_w, $thumb_h, 150, 150);
請看imagecopyresampled詳細介紹:
imagecopyresampled
(PHP 4 = 4.0.6, PHP 5)
imagecopyresampled — 重採樣拷貝部分圖像並調整大小
說明
bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h )
imagecopyresampled() 將一幅圖像中的一塊正方形區域拷貝到另一個圖像中,平滑地插入像素值,因此,尤其是,減小了圖像的大小而仍然保持了極大的清晰度。如果成功則返回 TRUE,失敗則返回 FALSE。
dst_image 和 src_image 分別是目標圖像和源圖像的標識符。如果源和目標的寬度和高度不同,則會進行相應的圖像收縮和拉伸。坐標指的是左上角。本函數可用來在同一幅圖內部拷貝(如果 dst_image 和 src_image 相同的話)區域,但如果區域交迭的話則結果不可預知。
注意: 因為調色板圖像限制(255+1 種顏色)有個問題。重採樣或過濾圖像通常需要多於 255 種顏色,計算新的被重採樣的像素及其顏色時採用了一種近似值。對調色板圖像嘗試分配一個新顏色時,如果失敗我們選擇了計算結果最接近(理論上)的顏色。這並不總是視覺上最接近的顏色。這可能會產生怪異的結果,例如空白(或者視覺上是空白)的圖像。要跳過這個問題,請使用真彩色圖像作為目標圖像,例如用 imagecreatetruecolor() 創建的。
注意: 本函數需要 GD 2.0.1 或更高版本(推薦 2.0.28 及更高版本)。
php如何實現圖片的裁剪
php中裁剪圖片主要使用gd庫的imagecopyresampled方法
$src_path = ‘1.jpg’;
//創建源圖的實例
$src = imagecreatefromstring(file_get_contents($src_path));
//裁剪開區域左上角的點的坐標
$x = 100;
$y = 12;
//裁剪區域的寬和高
$width = 200;
$height = 200;
//最終保存成圖片的寬和高,和源要等比例,否則會變形
$final_width = 100;
$final_height = round($final_width * $height / $width);
//將裁剪區域複製到新圖片上,並根據源和目標的寬高進行縮放或者拉升
$new_image = imagecreatetruecolor($final_width, $final_height);
imagecopyresampled($new_image, $src, 0, 0, $x, $y, $final_width, $final_height, $width, $height);
//輸出圖片
header(‘Content-Type: image/jpeg’);
imagejpeg($new_image);
imagedestroy($src);
imagedestroy($new_image);
怎麼實現php上傳圖片並可以裁剪的功能,類似一些網站的頭像截取,裁剪可以用jcrop插件。高分懸賞
php本身有裁剪圖片的函數,js的截取一般是獲得幾個坐標,供這個函數作為參數,php在圖片上傳到伺服器臨時空間的時候,對圖片進行裁剪,再按編程人的需求保存到指定目錄。
百度下現成的,或者翻翻手冊。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293324.html