導航:首頁 > 編程語言 > php圖片裁剪插件

php圖片裁剪插件

發布時間:2023-11-08 22:16:43

A. php裁剪 動態裁剪框,要求生成固定大小的圖片

<?php
$sourcefile = 'x.jpg';
#目標寬度
$newwidth = 150;
#目標高度
$newheight = 120;
#目標比例
$newbili = $newwidth / $newheight;

#源圖片寬高
list($width, $height) = getimagesize($sourcefile);

if($width / $height > $newbili){
#原圖較長
$w = $width - $newbili * $height;
$h = $height;
$x = ($width - $w) / 2;
$y = 0;
}else{
#原圖較寬
$w = $width;
$h = $height - $newbili * $width;
$x = 0;
$y = ($height - $h) / 2;
}

$source = imagecreatefromjpeg($sourcefile);
$thumb = imagecreatetruecolor($newwidth, $newheight);

imageresized($thumb, $source, 0, 0, $x, $y, $newwidth, $newheight, $w, $h);
imagejpeg($thumb, "a.jpg");

註:此程序未考慮原圖比目標圖片小的情況

B. php中的jcrop可以將選框移動到圖片區域外面嗎

搞清楚這個插件的原理之後,這個問題就迎刃而解了。
jcrop是在圖片上選點也就老嘩顫是圖片的坐標,然後蘆銷把侍敗坐標傳到後台php進行圖片的剪切操作。
只要你設置了外層是可以獲取到坐標的,但是傳到後台處理比較麻煩。

C. PHP 長方形圖片 不變形 裁剪 生成 正方形

$x = (200-150)/2;
imageresampled($thumb, $img_r2, 0, 0, $x, 0, $thumb_w, $thumb_h, 150, 150);

請看imageresampled詳細介紹:
imageresampled
(PHP 4 >= 4.0.6, PHP 5)

imageresampled — 重采樣拷貝部分圖像並調整大小

說明
bool imageresampled ( 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 )

imageresampled() 將一幅圖像中的一塊正方形區域拷貝到另一個圖像中,平滑地插入像素值,因此,尤其是,減小了圖像的大小而仍然保持了極大的清晰度。如果成功則返回 TRUE,失敗則返回 FALSE。

dst_image 和 src_image 分別是目標圖像和源圖像的標識符。如果源和目標的寬度和高度不同,則會進行相應的圖像收縮和拉伸。坐標指的是左上角。本函數可用來在同一幅圖內部拷貝(如果 dst_image 和 src_image 相同的話)區域,但如果區域交迭的話則結果不可預知。

注意: 因為調色板圖像限制(255+1 種顏色)有個問題。重采樣或過濾圖像通常需要多於 255 種顏色,計算新的被重采樣的像素及其顏色時採用了一種近似值。對調色板圖像嘗試分配一個新顏色時,如果失敗我們選擇了計算結果最接近(理論上)的顏色。這並不總是視覺上最接近的顏色。這可能會產生怪異的結果,例如空白(或者視覺上是空白)的圖像。要跳過這個問題,請使用真彩色圖像作為目標圖像,例如用 imagecreatetruecolor() 創建的。

注意: 本函數需要 GD 2.0.1 或更高版本(推薦 2.0.28 及更高版本)。

D. php 裁切圖片問題 求助

PHP做圖片裁切

PHP做圖片裁剪的原理是通過前台定位出要裁剪圖片的左上角位置,及右下角位置的做標,如果有放大和縮小的話還要給出放大和縮小的百分比,以及要對哪一個圖片進行操作,這幾個值傳到後台,在用PHP去處理!

前端圖片坐標點的得到可以自己用JS去實現,如果你的JS寫的不是很熟也沒有關系,可以下載一個jsCropperUI這一個包裡面有很多的DEMO,可以實現前台的拖曳效果了!

前台會有一個AJAX向後台發送數據,一般格式為x1="+position[0]+"&y1="+position[1]+"&x2="+position[2]+"&y2="+position[3]+"&r="+position[4]+"&id = imgid四個坐標,縮放值,要操作的ID

後PHP接收這個數據後,進行操作

$x1 = $_GET['x1'];
$y1 = $_GET['y1'];
$x2 = $_GET['x2'];
$y2 = $_GET['y2'];
$r = $_GET['r'];
if($x2<$x1||$y2<$y1){
return false;
}
$img="dog.jpg";

$im=imagecreatefromjpeg($img);
$percent = $r*0.01;
list($width, $height) = getimagesize($img);
$new_width = $width * $percent;
$new_height = $height * $percent;

$tempimg = imagecreatetruecolor($new_width,$new_height);
imageresampled($tempimg, $im,0,0,0,0, $new_width,$new_height, $width, $height);
imagejpeg($tempimg,"dog_temp.jpg");
ImageDestroy ($im);

$ims=$tempimg;
$srcW=ImageSX($ims);
$srcH=ImageSY($ims);
$top_x = $x1;
$top_y = $y1;
$bottom_x = $x2;
$bottom_y = $y2;
$newimg = imagecreatetruecolor($bottom_x-$top_x,$bottom_y-$top_y);
imageresampled($newimg, $ims,0,0,$top_x,$top_y, $srcW,$srcH, $srcW, $srcH);
imagejpeg($newimg,"dogs.jpg");
ImageDestroy ($ims);

echo 1;

成功後輸出1讓前台得到進行裁剪區域的刷新!這樣就可以實現PHP裁剪圖片的效果了!

閱讀全文

與php圖片裁剪插件相關的資料

熱點內容
ngc伺服器是什麼的簡稱 瀏覽:71
深度系統如何創建文件夾 瀏覽:844
臨汾單片機步進電機驅動電路 瀏覽:76
全新勝達天窗能編程嗎 瀏覽:320
ug常用命令 瀏覽:349
為什麼碳數增加密度減小 瀏覽:420
少兒計算機編程培訓無聊嗎 瀏覽:589
安卓界面更新時點擊卡頓如何解決 瀏覽:773
日本十大漫畫app哪個好用 瀏覽:878
做系統選擇哪個文件夾 瀏覽:285
如何登陸mc伺服器 瀏覽:801
華為無法定位伺服器地址 瀏覽:963
編譯原理第三版陳火旺課本圖片 瀏覽:566
cad用什麼解壓縮軟體 瀏覽:717
編譯的函數模版 瀏覽:361
加密貨幣利率改變 瀏覽:228
復雜網路案例python 瀏覽:298
死命令的意思 瀏覽:691
哪個app可以聽日語電台 瀏覽:105
谷輪壓縮機15hp 瀏覽:291